ESC/POS 热敏打印机 UTF-8 字符集设置

Posted

技术标签:

【中文标题】ESC/POS 热敏打印机 UTF-8 字符集设置【英文标题】:ESC/POS Termal printer UTF-8 charset set up 【发布时间】:2020-12-12 05:57:55 【问题描述】:

我正在尝试使用 Citaq v8(它有一个终端打印机)打印一些货币,但由于打印机字符集,它会打印 ?

我有要打印的字节数组 (UTF-8) 数据。但是打印机默认有一些字符集。如何以编程方式更改默认字符集(如使用字节数组)?我需要更改打印机字符集设置。

设备:Citaq v8(设备有终端打印机) PS:我找不到任何开发者文档。

【问题讨论】:

【参考方案1】:

也许不支持 UTF-8 作为字符集/代码表。

甚至 EPSON 也仅在某些型号上受支持。FS ( C <Function 48>

选择字符编码系统

ASCII   FS (  C  pL pH fn m
Hex     1C 28 43 02 00 30 m
Decimal 28 40 67  2  0 48 m

TM-P20

1, 49  ASCII (ISCII)  ISCII: Indian Script Code for Information Interchange
2, 50  UTF-8          Unicode encoding system

TM-m30II、TM-m30II-H、TM-m30II-NT

1, 49  1-byte character encoding  Non-Unicode encoding method (ASCII [extended], Shift JIS, Big5, GB2312, GB18030, KS C, etc.)
2, 50  UTF-8                      Unicode encoding system

您需要使用以下两个ESC/POS命令设置打印机代码页,并且请求打印的字符串在发送前必须根据代码页进行编码和转换。

ESC t

选择字符码表

ASCII   ESC t   n
Hex     1B  74  n
Decimal 27  116 n

ESC R

选择一个国际字符集

ASCII   ESC R   n
Hex     1B  52  n
Decimal 27  82  n

或者,您可以使用位图图像创建要打印的所有页面内容,并使用与图像打印相关的 ESC/POS 命令之一进行打印。 但是,它会很慢。

【讨论】:

以上是关于ESC/POS 热敏打印机 UTF-8 字符集设置的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Linux 中向热敏打印机发送 ESC/POS 命令

使用 JavaScript 通过 ESC/POS 将图像打印命令发送到以太网上的热敏打印机

使用 Flutter 打印到 ESC/POS 时如何防止套接字超时错误

如何定义 ESC/POS 中参数的长度?

C# ESC/POS 打印越南语

Intermec PB42 打印图像