Add functions to convert wide char to UTF-8

There was already utf8_to_wide_char(), used to correctly execute
commands on Windows.

Add the reverse converter: utf8_from_wide_char(). We will need it to
build the scrcpy-server path based on the executable directory.
This commit is contained in:
Romain Vimont 2019-06-10 15:44:45 +02:00
parent 4eb6b26c93
commit 3b17ff7c86
2 changed files with 19 additions and 0 deletions

View file

@ -92,4 +92,20 @@ utf8_to_wide_char(const char *utf8) {
return wide; return wide;
} }
char *
utf8_from_wide_char(const wchar_t *ws) {
int len = WideCharToMultiByte(CP_UTF8, 0, ws, -1, NULL, 0, NULL, NULL);
if (!len) {
return NULL;
}
char *utf8 = SDL_malloc(len);
if (!utf8) {
return NULL;
}
WideCharToMultiByte(CP_UTF8, 0, ws, -1, utf8, len, NULL, NULL);
return utf8;
}
#endif #endif

View file

@ -32,6 +32,9 @@ utf8_truncation_index(const char *utf8, size_t max_len);
// returns the new allocated string, to be freed by the caller // returns the new allocated string, to be freed by the caller
wchar_t * wchar_t *
utf8_to_wide_char(const char *utf8); utf8_to_wide_char(const char *utf8);
char *
utf8_from_wide_char(const wchar_t *s);
#endif #endif
#endif #endif