Нужен рабочий пример кода _wcstombs_l

0

Как использовать функцию _wcstombs_l для преобразования строки UNICODE в UTF-8? Наверное, мне нужно передать UTF-8 _locale_t, но я не знаю, как создать переменную этого типа.

  • 0
    первый результат на рабочем примере Google - [ msdn.microsoft.com/en-us/library/5d7tc9zw.aspx]
  • 0
    Пожалуйста, прочитайте мой вопрос - я хочу конвертировать в UTF-8.
Теги:
visual-studio
visual-c++

1 ответ

1
Лучший ответ

Вы не можете - 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.

Акцент мой.

  • 0
    Хорошо ... Это значит, что я неправильно понял эту удобную функцию. :-(
  • 0
    Я сталкивался с этим вопросом: stackoverflow.com/questions/7859638/… . Я думаю, что вполне возможно преобразовать из / в UTF-8, используя параметр _locale_t, но я не знаю, как создать локаль без использования boost.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню