【发布时间】:2020-07-21 05:19:11
【问题描述】:
我对 ESC Pos 打印非常陌生。 我正在编写一个打印收据的应用程序,如果我尝试打印一个“ö”,我会得到一个“?”。 我已经将Codepage 设置为 CP437,它应该支持 'ö' 作为字符。
在文档中,它解释了如何打印特殊字符,但我无法让它工作: Heres the snippet from the doc.
编辑 1(添加代码):
MainActivity.BLUETOOTH_PRINTER.BT_Write(new byte[] {0x1B, 0x52, 0x7});
使用MainActivity.BLUETOOTH_PRINTER_BT_Write() 我可以打印byte[] 部分,但是打印上面的代码会给我一长页(200 个字符)的随机内容。
【问题讨论】:
-
“但我无法让它工作”:请向我们展示您的代码。
-
打印请求字符串的编码是否转换为代码页437?请尝试代码页 437 中 0x80 以上的所有字符,而不仅仅是问题中的字符。
-
我对编码很不熟悉,我需要写什么
{0x1B, 0x52, 0x80}? -
它不是打印机控制命令,而是要打印的字符串本身的编码。目前转utf-8的文章很多,但是这个转cp437有必要吗? getBytes, Java String.getBytes( charsetName ) vs String.getBytes ( Charset object ), String encoding conversion UTF-8 to SHIFT-JIS