将ISO 8859-X转换为UNICODE

时间:2017-09-20 11:03:14

标签: c++ unicode iso

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

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

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

你能分享一下这些选择吗?可能每个选项的优缺点是什么?

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

1 个答案:

答案 0 :(得分:1)

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

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