2013-06-05 27 views
0

我使用热敏打印机打印一些文字。一切工作正常,除了当我尝试打印竖线字符|我的打印机显示Ö,所以我认为错误是在这一部分:正确的字符集|

text=msg.getBytes("UTF8"); 

但我不知道为什么;如果我使用UTF-8字符集,它似乎应该可以工作。怎么了?我试过(“UTF-8”),(“UTF8”),(“ISO8859-1”),(“ISO88591”),(“ISO-8859-1”),但是同样的事情发生在每个。

UPDATE

这是我想打印(在Android设备) enter image description here

这是我得到什么ONT他打印机 enter image description here

+1

你错过了短跑吗? ...“(UTF-8) – gtr1971

+0

不,我试着用(”UTF-8“),(”UTF8“),(”ISO8859-1“),(”ISO88591“),(”ISO- 8859-1“)并没有任何...仍然出现'Ö' –

+0

也许是语言问题?在QWERTZ键盘(德国)上,ö可能是管道字符的位置 – jlordo

回答

2

它看起来像您的热敏打印机被配置为使用古代字符编码之一,其中“罕见”字符 - 括号,括号,垂直条,......被“国家字符”取代,例如ä,ö和SS在德国。当设备设置为使用这些编码时,无法输出替换的字符。

查看热敏打印机的用户手册。必须有一种方法可以将字符映射更改为标准ASCII。例如,Linux控制台使转义码"\033(B"返回到通常的ASCII编码。

+0

是的,一旦apo时间它工作正常(约2个月),但我不记得我改变了什么,只是昨天我realizad那个问题.. –

+0

我得到消息的字节,然后从字节[]中重新生成一个字符串...字符串有3 |||,所以问题不在于字符集。正如你所说,是打印机......我会继续检查,谢谢。 –

+0

谢谢,你有原因,问题是打印机的字符集,我的打印机有14个内部字符集,我不得不选择美国字符集...这是esc/pos命令在十进制{27,87, 0}' –