Преобразование wchar_t* в строку UTF-16

Мне нужен код на C++ для преобразования строки, заданной в wchar_t*, в UTF-16 нить. Он должен работать как в Windows, так и в Linux. Я просмотрел много веб-страниц во время поиска, но тема мне так и не ясна.

Насколько я понимаю, мне нужно:

  1. Вызвать setlocaleс кодировкой LC_TYPE и UTF-16.
  2. Используйте wcstombsдля преобразования wchar_tв строку UTF-16.
  3. Вызовите setlocaleдля восстановления предыдущей локали.

Знаете ли вы, как я могу преобразовать wchar_t*в UTF-16 переносимым способом (Windows и Linux)?

5
задан Jonathan Leffler 14 March 2012 в 06:54
поделиться