我有一個打印格式頁面,它使用十六進制值表示擴展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