Преобразование кодировок из Unicode в кодовые страницы ISO8859-x способом, не зависящим от платформы - PullRequest
0 голосов
/ 04 августа 2020

Мне нужно преобразовать входящие строки в кодировке UTF-8 в кодовые страницы c для страны, например, ISO-8859-2 (ISO Latin-2).

Важные вещи, я хочу быть независимым от наличия соответствующих локалей в системе. Целью этого преобразования не является интернационализация в том смысле, что моя программа должна правильно выводиться на машины многоязычных пользователей. Преобразование должно создавать данные для внешних устройств, которым требуются предопределенные кодировки.

До сих пор я только что создал карту, которая определяет преобразования из кодовых точек Unicode в эквиваленты ISO-8859-2. Я использую std::wstring_convert<std::codecvt_utf8<wchar_t>> для преобразования UTF-8 std::string в Unicode std::wstring, а затем делаю преобразования, используя определенную карту. Конечно, я полагаю, что есть способы получше.

Существуют ли какие-либо решения, доступные в стандартных библиотеках C ++, Boost или других, позволяющие выполнять такие преобразования? Можно ли «связать» параметр локали, например кодировку, с приложением, чтобы оно могло работать независимо от языковых стандартов системы?

1 Ответ

1 голос
/ 04 августа 2020

Возможно, вам захочется взглянуть на International Components for Unicode (ICU), который имеет функции преобразования символов .

...