Вы можете использовать ICU, но вы можете найти iconv()
достаточным, что намного проще в настройке и эксплуатации (и является частью Posix, и легко доступно для Windows).
В любой из этих библиотек вам необходимо преобразовать строку Юникода в широкую строку. В iconv()
эта цель называется WCHAR_T
. Если у вас есть широкий символ, вы можете использовать его непосредственно в Windows.
В Linux вы можете либо использовать wcstombs()
для преобразования широких символов в многобайтовую кодировку системы (и локали) (не забывайте setlocale(LC_CTYPE, "");
), либо, если вы уверены, что вам нужен UTF-8, а не системная кодировка, вы можете преобразовать исходную строку в UTF-8 напрямую (также с любой библиотекой).
Может быть, вы найдете моего поста моего, чтобы обеспечить некоторую предысторию.