Как преобразовать форму UTF-8 в латиницу / арабский и наоборот? - PullRequest
4 голосов
/ 10 мая 2011

Существует ли кроссплатформенный способ конвертации из UTF-8 в латиницу / арабский и из латинского / арабского UTF-8 в C ++?

Ответы [ 2 ]

3 голосов
/ 10 мая 2011

Доступны библиотеки типа icu .Но Эрик, конечно, прав: обратный путь от Unicode до ISO 8859-6 будет с потерями.(Да, UTF-8 - это «Юникод». UTF-16 - это тоже «Юникод», просто с разными битовыми шаблонами для одного и того же номера кода. См. текст Джоэла Спольски , если вы не зналиэто. Или, если вы еще не читали, это хороший материал.)

0 голосов
/ 10 мая 2011

Нет, но есть кроссплатформенный способ преобразования между юникодом, представленным в wchar_t (который является 16-битным в Windows и 32-битным на большинстве других платформ), и любым другим, установленным как символ локаликодирование в системе с использованием подпрограмм wcstombs / mbstowcs из стандартной библиотеки C или codecvt фасета locale в стандартной библиотеке C ++.Преобразование между wchar_t, где каждый элемент представляет собой одну кодовую точку, и utf-8, чем просто.Таким образом, вы можете написать или скопировать откуда-нибудь подпрограмму для преобразования между utf-8 и unicode в wchar_t и объединить ее с wcstombs / mbstowcs.

...