我有一个打印格式页,它使用十六进制值来表示扩展的 ASCII 字符(类似于 IBM代码页 437中的字符)。我正在使用此表作为参考。我对格式页面没有发言权,因此无法更改。
这个打印格式页面在我的 Android 应用程序中用于在发送到打印机时将相关数据放置在正确的位置。最终结果应该类似于发票。
我在 Java 中表示某些 ASCII 字符时遇到问题。例如,上表中的字符 201、205 和 187。当按该顺序组合时,它们来自我的数据表的漂亮边框。
在Java中,我试图从十六进制转换为ASCII,如下所示:
String hex = "D5"; //this is just for example
int n = Integer.parseInt(hex, 16); //this should return a value of 213
char c = (char)n;
“c”最终变成了一个看起来很古怪的角色,这不是我想要的。我现在意识到这是因为 Java 使用的是Windows-1252/CP-1252 标准。
我认为解决方案是将两位十六进制值转换为相应的 Unicode 值,但无法弄清楚如何。任何帮助,将不胜感激。