在ESC / POS命令中选择字符代码表

时间:2018-09-18 15:58:46

标签: hex ascii non-ascii-characters thermal-printer pos

我需要在打印收据上打印非英语字符,请使用热POS收据打印机。 Xprinter XP-58III热POS收据打印机支持通用ESC / POS命令。 据我所知,应该通过设置字符代码表来完成。在我的情况下,目标代码页为21。 设置代码页的ESC / POS命令为'ESC t n'(ASCII)或'1B 74 n'(十六进制),其中'n'是字符代码表的第n页。

我使用十六进制形式的命令:shold我将'21'转换为十六进制值,或者我应该使用该数字而不进行转换,即'1B 74 21'

此外,在初始化代码之后,应该在哪里添加thnis命令?

0x1B 0x40 0x1B 0x74 0x21

我使用十六进制编辑器在二进制文件中添加/编辑ESC / POS代码。

编辑:我自己解决了此问题。为了在POS收据打印机上打印任何非英语字符,我们必须满足两个条件:1)设置正确的代码页,和2)在收据文件或POS软件中设置相应的编码(与代码页相同的编码) 。此POS打印机型号的正确代码页为25 [WPC1257]。

2 个答案:

答案 0 :(得分:1)

我自己解决了该问题:问题出在错误的代码页集中。该POS打印机的正确代码页为25 [WPC1257]。我们还在收据文件中设置了相应的编码(与代码页相同的编码)。

答案 1 :(得分:0)

第21页应为“泰国字符代码11”,其中21以十进制表示,您需要以二进制形式说"0x15"。然后,该命令将看起来像"0x18 0x74 0x15"
关于命令位置,ESC / POS命令在适当位置执行,并且此后通常会受影响。您将它放在初始化命令之后可能没有问题。只需尝试。