c++ - 将 ISO 8859-X 转换为 UNICODE 的方法

标签 c++ unicode iso

在 C++ 中将 ISO 8859-X 转换为 UNICODE 有哪些选项?我所说的 UNICODE 是指 0 到 65,535 之间的 UNICODE 代码点,因为所有 ISO 8859-X 都是占据该范围的字符集。

最明显的是获取映射表 ( http://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT ) 并为它创建一个解析器。但我想有一些库(我没有找到)?

我知道有一个用于 ISO-8859-1 转换的简单代码,但让我们忽略它,因为它仅适用于这种特定的 ISO 编码。

您能分享一下选项是什么吗?可能每个选项的优点/缺点是什么?

就我个人而言,我更喜欢轻量级的东西,因为我只需要单向转换和 ISO,而不是完整的 UNICODE 支持。

最佳答案

您可以使用专用的 Unicode 转换库,例如 ICONVICU .

但是,如果您需要的只是从 ISO-8859-X 到 Unicode 的转换,而不是相反,并且没有其他字符集,那么您可以简单地声明一个静态 wchar_t[16][256] 包含适当的 Unicode 代码点的数组。只定义了 16 个 ISO-8859 字符集(好吧,如果你算上变体的话,还有几个),每个字符集最多有 256 个值。然后,您可以使用输入字符串的字符作为数组的索引来遍历输入字符串。

关于c++ - 将 ISO 8859-X 转换为 UNICODE 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320327/

相关文章:

c++ - 为什么类中的 vector 自动变为 NULL

bash - genisoimage 脚本不能刻录大于 4GB 但小于 4.5GB 的文件?

c++ - 为什么 CRITICAL_SECTION 的 OwningThread 成员是 HANDLE 类型,当它表示线程 ID 时?

c++ - CGAL:找到一个点所属的面/三角形?

c++ - 我无法在类中获取 MBED 代码来调用成员方法

html - 手动执行小型大写以获得所需的外观而不是字体变体 : small-caps;

C++:宽字符输出不正确?

python - 在 Python unicode 字符串中删除重音(规范化)的最佳方法是什么?

javascript - 根据母语人士的数量寻找一个好的 ISO 语言标签列表

传递函数参数时的 C++ 执行顺序