Как использовать функцию _wcstombs_l для преобразования строки UNICODE в UTF-8? Наверное, мне нужно передать UTF-8 _locale_t, но я не знаю, как создать переменную этого типа.
Вы не можете - UTF-8 на самом деле не является кодовой страницей ANSI, там не используется локаль. WideCharToMultiByte(CP_UTF8,...)
используйте WideCharToMultiByte(CP_UTF8,...)
.
Вы должны создать _locale_t
аргумент для _wcstombs_l
с _create_locale
функции. В его документации указано, и я цитирую:
Аргумент locale может содержать имя локали, строку языка, строку языка и код страны/региона, кодовую страницу или строку языка, код страны/региона и кодовую страницу. Набор доступных имен локалей, языков, кодов стран/регионов и кодовых страниц включает все, которые поддерживаются API NLS Windows, за исключением кодовых страниц, для которых требуется более двух байтов на символ - например, UTF-7 и UTF-8, Если вы предоставите кодовую страницу, такую как UTF-7 или UTF-8,
_create_locale
завершится с ошибкой и вернетNULL
.
Акцент мой.