打印UPS运输标签时如何处理特殊字符

问题描述 投票:0回答:1

我正在尝试使用 UPS Shipping API 打印国际货件标签。问题是某些收件人信息包含西班牙语字符,例如“José”中的é。在响应 ZPLII 代码中,所有这些字符都将被替换字符 � 替换,使得名称和地址难以读取。

我找到了在 ZPL 中打印 Unicode 字符的解决方案,其中我将 ^CI27

 替换为 
^CI28
,将所有 
^FD
 替换为 
^FH^FD
,将所有 
^FV
 替换为 
^FH^FV
。但是,由于所有西班牙语字符都替换为 �,我无法定位特殊字符以将它们正确映射到 UTF8 十六进制代码,例如将 
é
 映射到 
_C3_A9

我正在考虑删除所有重音符号,例如提前将所有

é

替换为
e
,但我不确定修改后的单词在西班牙语中是否仍然具有相同的含义。

这是修改前的响应 ZPL 示例:

^FO15,142^A0N,28,32^FVSHIP TO: ^FS ^FO61,166^A0N,28,32^FVJOS�^FS ^FO61,194^A0N,28,32^FV(123)456-9890^FS ^FO61,222^A0N,28,32^FVSomeAddress with �^FS ^FO61,251^A0N,28,32^FVAPT 1, D^FS ^FO61,279^A0N,45,44^FV12345 MONTERREY NL^FS ^FO61,324^A0N,45,44^FVCOUNTRY^FS
有什么建议吗?

c# zpl ups zpl-ii
1个回答
0
投票
我不确定这是否是 ZPL 相关问题。

对我来说,这看起来像是输入文件的编码问题。我对斯洛伐克语字符也有类似的问题。整个文件中没有“ľ,š,č,ť,ž,ý,á,í,é,...”字符,而是“�”字符。文件本身报告为以 UTF-8 编码保存,这应该完全支持斯洛伐克语字符。我尝试使用 Windows 1250(中欧)编码打开此文件 - 删除了所有“�”字符。然后我用UTF-8保存文件,问题就解决了。

所以我认为你应该尝试对输入字符的编码进行一些调整,并将它们设置为 UTF-8 编码。也许它们报告为 UTF-8 字符,就像我的情况一样,但只是为了进行完整性检查,请尝试以西班牙语编码(应为 1252)重新打开它们并将它们保存为 UTF-8 以查看是否会更改任何内容。

但是,为了使用 ZPL 打印这些字符,您必须使用

^CI

 命令更改 ZPL 中的字符集,并将 Unicode UTF-8 编码的值设置为 
28

Labelary Online ZPL 查看器中尝试一下:

^CI28 ^FO15,142^A0N,28,32^FVSHIP TO: ^FS ^FO61,166^A0N,28,32^FVJOSÉ áíéóúñü^FS ^FO61,194^A0N,28,32^FV(123)456-9890^FS ^FO61,222^A0N,28,32^FVSomeAddress with íéá^FS ^FO61,251^A0N,28,32^FVAPT 1, D^FS ^FO61,279^A0N,45,44^FV12345 MONTERREY NL^FS ^FO61,324^A0N,45,44^FVCOUNTRY^FS
希望我对你有帮助。祝你有美好的一天:)

© www.soinside.com 2019 - 2024. All rights reserved.