【问题标题】:ESC/POS Termal printer UTF-8 charset set upESC/POS 热敏打印机 UTF-8 字符集设置
【发布时间】:2020-12-12 05:57:55
【问题描述】:
我正在尝试使用 Citaq v8(它有一个终端打印机)打印一些货币,但由于打印机字符集,它会打印 ?。
我有要打印的字节数组 (UTF-8) 数据。但是打印机默认有一些字符集。如何以编程方式更改默认字符集(如使用字节数组)?我需要更改打印机字符集设置。
设备:Citaq v8(设备有终端打印机)
PS:我找不到任何开发者文档。
【问题讨论】:
标签:
android
utf-8
outputstream
thermal-printer
character-set
【解决方案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 命令之一进行打印。
但是,它会很慢。