Мне нужно преобразовать входящие строки в кодировке 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 или других, позволяющие выполнять такие преобразования? Можно ли «связать» параметр локали, например кодировку, с приложением, чтобы оно могло работать независимо от языковых стандартов системы?