我有一个打印格式页面,它使用十六进制值表示扩展ASCII字符(类似于IBM code page 437中的字符)。我正在使用这个table作为参考。我对格式页面没有发言权,所以这不能改变。将两位十六进制代码转换为Unicode编码
此打印格式页面用于我的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 standard。
我认为解决方案将从两位数的十六进制值转换为相应的Unicode值,但无法弄清楚如何。任何帮助,将不胜感激。
D5十六进制= 213,而不是201 – ajb