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

3

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

是否有一种标准/常见/易用的方法将这些字符映射到cp1047等效字符?

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

显然,我可以在代码中执行替换操作,但是否有更好的方法? 是否有我不知道的开源工具或API可用?


4
大多数Unicode字符并没有对应的CP1047字符。 - SLaks
1
这个问题 https://dev59.com/fW445IYBdhLWcg3wia6W 指向一个看起来不错的转换表网页 http://lexsrv3.nlm.nih.gov/LexSysGroup/Projects/lvg/current/docs/designDoc/UDF/unicode/DefaultTables/symbolTable.html。 - clstrfsck
2
升级您的遗留编码到Unicode比将Unicode降级为陈旧的、腐朽的遗留编码要容易得多,也更加可取。 - tchrist
1个回答

2
如果您想在EBCDIC(CP 1047)中编码Unicode字符,那么(显然)有UTF-EBCDIC(尽管我不知道任何现有的工具可以转换为该格式)。
另外,我建议使用非标准形式的百分号编码XML/HTML编码。这两种编码中的任何一种都可能有现有的编码工具(例如Commons Lang StringEscapeUtils)。
最后,如果您只想将扩展字符“映射”到CP 1047空间中,那么我想您只能逐个扫描源字符串中的字符,并从Map<Char, Char>(或Map<Char, String>)构建结果字符串,只要您预先知道所有需要处理的扩展字符及其所需的等效/替换字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接