【问题标题】:How to set character set using ESC/POS?如何使用 ESC/POS 设置字符集?
【发布时间】:2021-08-28 12:42:27
【问题描述】:

更具体地说,ESC tESC R 之间有什么区别,我应该什么时候使用它们?

它与我可能发送到打印机的字节数组的字符编码有什么关系?

编辑

作为后续,

  • 要打印的文本来自软件的 ISO-8859-1,包括典型的“Latin 1”Portuguese 字符,例如 á é ã ç
  • 我将ESC t 设置为WPC1252 (0x10) 并尝试PC860 (0x03) 无济于事
  • 没有对应葡萄牙语的ESC R,所以我尝试了
    • 不提供ESC R
    • 使用Spain III(分别为0x070x0B

不成功。

我正在使用多个设备进行测试,非 ASCII 字符始终打印为“垃圾”。

一台便宜的蓝牙打印机打印汉字字符,测试页显示“Codepage: GBK”但我在参考中找不到;我也找不到同样被引用的“ANK”。

内置蓝牙打印机的安卓设备打印希腊字符,测试页显示“中文模式:否”以及
“居民角色:
字母数字
GB1312"

编辑

好的,ANK字母数字假名,所以我假设是日语。
GBK郭家标准,主要是中文。
两者都与我无关。

【问题讨论】:

  • 顺便说一句,您在问题中所指的页面是关于ESC/POS。问题标题和标签ESC/P 相似,但完全不同。具体针对哪一个,是否支持每条命令,取决于打印机厂商和型号,如果清楚,最好加上。
  • 已更正为 ESC/POS,添加了更多详细信息。

标签: kotlin character-encoding escpos escp


【解决方案1】:

ESC t 切换 0x80-0xFF 范围内的字符。

它是过程的主要部分,即所谓的代码页或编码。

ESC R 切换 0x20-0x7E 范围内的一些字符。

可能对字符的处理称为国家替换字符集。

National Replacement Character Set - Wikipedia

如有必要,您需要结合并正确配置两者以对应代码页和编码。

【讨论】:

  • 如果我想根据文档将ESC t 设置为n=3,我是使用0x1B 0x74 0x03 还是0x1B 0x74 0x33(ASCII 字符“3”的十六进制代码)?跨度>
  • 对于此控制代码,0x33 将是另一个代码页。只有 0x03 有效。
猜你喜欢
  • 2016-07-10
  • 2020-12-12
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2011-08-15
  • 2021-02-21
  • 2016-12-24
  • 2013-02-25
相关资源
最近更新 更多