Преобразуйте UTF-16 в UTF-8 в соответствии с Windows и Linux в C

Я задавался вопросом, существует ли рекомендуемый 'перекрестный' метод Windows и Linux в целях преобразования строк от UTF-16LE до UTF-8? или нужно использовать различные методы для каждой среды?

Мне удалось погуглить немного ссылок на 'iconv', но для somreason я не могу найти образцы основных преобразований, такой как - преобразование wchar_t UTF-16 к UTF-8.

Кто-либо может рекомендовать метод, который был бы 'перекрестным', и если бы Вы знаете о ссылках или руководстве с образцами, был бы очень признателен за его.

Спасибо, панель Doori

25
задан hippietrail 17 April 2011 в 06:23
поделиться

4 ответа

Спасибо, ребята, вот как мне удалось решить «перекрестные» требования к окнам и Linux:

  1. Скачаны и установлены: MinGW и MSYS
  2. Загрузил исходный код libiconv
  3. Скомпилировал libiconv через MSYS .

Вот и все.

0
ответ дан 28 November 2019 в 21:43
поделиться

Очень часто используется библиотека ICU с открытым исходным кодом .

5
ответ дан 28 November 2019 в 21:43
поделиться
wchar_t *src = ...;
int srclen = ...;
char *dst = ...;
int dstlen = ...;
iconv_t conv = iconv_open("UTF-8", "UTF-16");
iconv(conv, (char*)&src, &srclen, &dst, &dstlen);
iconv_close(conv);
4
ответ дан 28 November 2019 в 21:43
поделиться

Если вы не хотите использовать ICU,

  1. Windows: WideCharToMultiByte
  2. Linux: iconv (Glibc)
6
ответ дан 28 November 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: