我正在尝试编码一个字符串,该字符串包含目标编码不支持的字符(CP 1047)。
是否有标准/通用/简单的方法将这些字符映射到cp1047等效字符?
例如,文本有一个花哨的双引号字符(”
),我想将其转换为直双引号("
)。
显然我可以在我的代码中进行替换,但是他们是更好的方法吗?是否有一个我不了解的开源工具或API?
答案 0 :(得分:2)
如果你想在EBCDIC(CP 1047)中编码Unicode字符,那么(显然)就有UTF-EBCDIC(虽然我不知道任何现有的工具可以转换成那些)。
或者,我会考虑使用Percent-encoding或XML/HTML encoding的非标准形式。这两种编码中的任何一种都可能具有编码的现有工具(例如Commons Lang StringEscapeUtils)。
最后,如果您只想将扩展字符“映射”到CP 1047空间,那么我猜您将逐个字符地扫描源字符串,并从Map<Char, Char>
(或{{ {1}}),只要您事先知道必须处理的所有扩展字符及其所需的等效/替换。