我有一个Android应用程序,我正在尝试打印一些包含非拉丁字符的文本.
我正在使用此代码将ESC t n命令发送到打印机:
byte[] buf = new byte[]{0x1B,0x74,(byte)2}; // 2 is the codetable for PC850: Multilingual
this.mBaSEOutputStream.write(buf);
然后,我尝试像这样打印我的代码:
this.mBaSEOutputStream.write(“Лоремăîîîîî㔓.getBytes(”cp850“));
但我得到的所有非拉丁字符都是奇怪的符号.
那么我做错了什么?
最佳答案
不确定这是一个答案,但希望这将开始.还需要一点空间来解释……
看起来代码页850没有所需的字符.离线检查的一种简单方法是转换回String.例如. :
System.out.println(
new String("Лорем ăîîîîîîă".getBytes("cp850"),"cp850"));
--> ????? ?îîîîîî?
显然只有那里有.
您可能需要使用其他代码页进行一些实验 – 这是什么类型的打印机?
这里的几个测试表明示例字符串可能需要多个代码页,但其他人可能更清楚:
System.out.println(
new String("Лорем ăîîîîîîă".getBytes("cp852"),"cp852"));
--> ????? ăîîîîîîă
System.out.println(
new String("Лорем ăîîîîîîă".getBytes("cp855"),"cp855"));
--> Лорем ????????