Léa*_*iot 7 utf-8 character-encoding zpl zebra-printers
如果我将以下ZPL命令发送到Zebra打印机,它会打印AmitiÙ:
^XA
^FO50,20
^CI7
^A0N,25,15
^FD
Amitié
^FS
^XZ
Run Code Online (Sandbox Code Playgroud)
ANSI.^CI7(7 =>单字节编码 - 法国1字符集).另一方面,如果我将以下ZPL命令发送到Zebra打印机,它会打印Amitié(这是我实际需要获得的):
^XA
^FO50,20
^CI28
^A0N,25,15
^FD
Amitié
^FS
^XZ
Run Code Online (Sandbox Code Playgroud)
UTF-8.^CI28(28 => Unicode(UTF-8编码) - Unicode字符集).你知道第一种情况有什么问题吗?
谢谢你的帮忙.
spo*_*rts 10
通过^CI28在ZPL模板的顶部放置命令来使用UTF-8 ,例如
^XA
^CI28
^CF0,80
^FO70,40^FDavión^FS
^XZ
Run Code Online (Sandbox Code Playgroud)
根据Zebra 的编程指南文档^CI,使用 7 将获得代码页 850以及一些特定的字符替换。当您说您的文件以 ANSI 编码时,我假设您指的是代码页 Windows-1252或ISO-8859-1 (latin1)。
Windows-1252 和 latin1 中的字符\xc3\xa9是 #00E9,但在 850 中是这样的\xc3\x9a;\xc3\xa9在 850 中你会想要 #0082。使用^CI7你显然也可以得到\xc3\xa9#007B,因为这是用该命令进行的特定字符替换之一。
使用 UTF8(带有^CI28)可能是可行的方法,因为它得到了广泛的支持和理解,但请注意,您也可以尝试^CI27(即使您有不支持的旧版本 Zebra 固件,这也可能有效^CI28)这应该会得到代码页 1252。如果这不起作用,您需要使用代码页 850 对文本进行编码。
如果将第一个示例复制并粘贴到可以在 UTF-8 和 ANSI (Notepad++) 之间转换的文本编辑器中,您将看到第一个示例被编码为
\n\n^XA\n^FO50,20\n^CI7\n^A0N,25,15\n^FD\nAmiti\xc3\x83\xc2\xa9\n^FS\n^XZ\nRun Code Online (Sandbox Code Playgroud)\n\n这会导致 ZPL 渲染时出现问题。请参阅ANSI和UTF-8的在线示例。
\n\n要解决此问题,您可以首先对您的值进行编码(例如十六进制,然后使用前缀^FH)
| 归档时间: |
|
| 查看次数: |
7803 次 |
| 最近记录: |