ICU通过映射表为许多重要代码页提供字符集转换。默认表是IBM的CDRA转换表存储库的子集。我们的 转换器资源管理器显示了内置于标准ICU分发中的默认表的别名和代码页图表。
大多数代码页的转换在不同的平台上实现方式不同。我们在这里提供了许多不同来源的映射表,以便ICU用户和其他人可以使用这些表获得与原始平台上相同的转换行为。
将映射表和一些源代码签入到收集这些表的工具中 https://github.com/unicode-org/icu-data回购。表文件以两种格式提供:
如果要将其中一个表添加到ICU副本中,可以使用 数据自定义ICU用户指南的一节,了解有关此主题的更多信息。
以下是对我们的一些工具创建的收集的字符集映射信息的分析。的一些别名 UTR#22名称可以在我们的 ICU转换器浏览器和在 ICU别名表.
有两种主要的状态编码类型:
简单的双状态编码,通常使用SI/SO ISO控制代码更改状态。这些特别用于EBCDIC多字节代码页。
复杂编码主要遵循ISO 2022模型,该模型使用转义序列、SI/SO控制和单移位码改变状态。
ucm文件格式通过指定代码页结构支持简单的SI/SO状态编码。这两种状态的代码页字节序列长度不同:初始状态的单字节代码和其他状态的双字节代码。
我们目前没有用于更复杂的有状态编码的映射表。我们计划为每个状态提供一个映射表文件,再加上一个列出状态及其调用序列和每状态映射表名称的文件。
当前的.xml文件格式不支持任何有状态编码。
在GB 18030标准定义的大量映射(110万)中,只有约31000个映射被明确列出。.xml文件包含<range>元素中的其余映射。ucm文件未分配受影响的字符,并依赖ICU转换器(1.7版及更高版本)以算法方式执行这些映射。
有关此映射表集合的反馈、意见和问题,请通过发送电子邮件 邮件列表/联系人.