将Unicode字符自动映射到类似的EBCDIC 1047字符

时间:2011-08-16 18:54:38

标签: java unicode character-encoding ebcdic non-unicode

我正在尝试编码一个字符串,该字符串包含目标编码不支持的字符(CP 1047)。

是否有标准/通用/简单的方法将这些字符映射到cp1047等效字符?

例如,文本有一个花哨的双引号字符(),我想将其转换为直双引号(")。

显然我可以在我的代码中进行替换,但是他们是更好的方法吗?是否有一个我不了解的开源工具或API?

1 个答案:

答案 0 :(得分:2)

如果你想在EBCDIC(CP 1047)中编码Unicode字符,那么(显然)就有UTF-EBCDIC(虽然我不知道任何现有的工具可以转换成那些)。

或者,我会考虑使用Percent-encodingXML/HTML encoding的非标准形式。这两种编码中的任何一种都可能具有编码的现有工具(例如Commons Lang StringEscapeUtils)。

最后,如果您只想将扩展字符“映射”到CP 1047空间,那么我猜您将逐个字符地扫描源字符串,并从Map<Char, Char>(或{{ {1}}),只要您事先知道必须处理的所有扩展字符及其所需的等效/替换。