我正在尝试对包含目标编码 ( CP 1047) 不支持的字符的字符串进行编码。
是否有标准/通用/简单的方法将这些字符映射到 cp1047 等价物?
例如,文本中有一个奇特的双引号字符 (”
),我想将其转换为直双引号 ("
)。
显然我可以在我的代码中进行替换,但他们是更好的方法吗?是否有我不知道的开源工具或 API?
最佳答案
如果您想在 EBCDIC (CP 1047) 中编码 Unicode 字符,那么(显然)有 UTF-EBCDIC (虽然我不知道有任何现有工具可以转换成那个)。
或者,我会考虑使用 Percent-encoding 的非标准形式或 XML/HTML encoding .这两种编码中的任何一种都可能具有现有的编码工具(例如 Commons Lang StringEscapeUtils )。
最后,如果您只想将扩展字符“映射”到 CP 1047 空间,那么我猜您只能逐个字符扫描源字符串并从 Map<Char, Char>
构建结果字符串。 (或 Map<Char, String>
),只要您事先知道您必须处理的所有扩展字符及其所需的等价物/替换物。
关于java - 自动将 Unicode 字符映射到类似的 EBCDIC 1047 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7083479/