以一种不依赖于平台的方式将字符集从Unicode转换为ISO8859-x代码页



我需要将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(。

最新更新