我需要将UTF-8编码的传入字符串转换为特定于国家/地区的代码页,例如ISO-8859-2(ISO Latin-2(。
重要的是,我希望独立于系统中是否存在适当的区域设置。转换的目标不是国际化,因为我的程序应该在多语言用户的机器上有适当的输出。转换必须为需要预定义编码的外部设备创建数据。
到目前为止,我刚刚创建了一个映射,它定义了从Unicode代码点到ISO-8859-2等效代码点的转换。我使用std::wstring_convert<std::codecvt_utf8<wchar_t>>
将UTF-8std::string
转换为Unicodestd::wstring
,然后使用定义的映射进行转换。当然,我想还有更好的方法。
标准C++库、Boost或其他库中是否有任何可用的解决方案,使执行此类转换成为可能?是否可以";链接";应用程序的区域设置(如字符集(,以便它可以独立于系统区域设置工作?
您可能想了解一下具有字符转换功能的Unicode国际组件(ICU(。