自动将 Unicode 字符映射到类似的 EBCDIC 1047 字符
我正在尝试对包含目标编码不支持的字符的字符串进行编码 (CP 1047) 。
是否有一种标准/通用/简单的方法将这些字符映射到 cp1047 等效项?
例如,文本有一个奇特的双引号字符 (”
),我想将其转换为直双引号 ("
)。
显然我可以执行替换在我的代码中,但是他们有更好的方法吗?是否有我不知道的开源工具或API?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你想用 EBCDIC (CP 1047) 编码 Unicode 字符,那么(显然)有 UTF-EBCDIC< /a> (尽管我不知道有任何现有工具可以转换为它)。
或者,我会考虑使用非标准形式的 百分比编码 或 XML/HTML 编码。这两种编码中的任何一种都可能有现有的编码工具(例如 Commons Lang StringEscapeUtils)。
最后,如果您只想将扩展字符“映射”到 CP 1047 空间,那么我想您只能逐个字符扫描源字符串并从 (或
Map
MapMap
),只要您事先知道必须处理的所有扩展字符及其所需的等效字符/替换字符。If you want to encode Unicode characters in EBCDIC (CP 1047), then (apparently) there's UTF-EBCDIC (though I don't know of any existing tools that can convert to that).
Alternatively, I would look into using the non-standard form of Percent-encoding or XML/HTML encoding. Either one of these two encodings would probably have existing tools for encoding (such as Commons Lang StringEscapeUtils).
Finally, if you just want to 'map' extended characters into the CP 1047 space then I guess you're left with scanning the source string character by character and building the result string from a
Map<Char, Char>
(orMap<Char, String>
), so long as you know beforehand all the extended characters you have to deal with and their desired equivalents/replacements.