伟迪捷(Videojet)打码机的通讯协议中所指的“Unicode协议”
【摘要】 伟迪捷(Videojet)打码机的通讯协议中所指的“Unicode协议”伟迪捷(Videojet)打码机的通讯协议中所指的“Unicode协议”,具体编码方式为 UTF-16LE(小端序)。这个信息非常关键,也直接解释了之前你遇到的乱码问题:当调试助手用 UTF-8 或 ANSI/GBK 发送中文时,服务端(打码机)按 UTF-16LE 去解析,字节长度和对位完全不同,自然会产生乱码。只有将...
伟迪捷(Videojet)打码机的通讯协议中所指的“Unicode协议”
伟迪捷(Videojet)打码机的通讯协议中所指的“Unicode协议”,具体编码方式为 UTF-16LE(小端序)。
这个信息非常关键,也直接解释了之前你遇到的乱码问题:
-
当调试助手用 UTF-8 或 ANSI/GBK 发送中文时,服务端(打码机)按 UTF-16LE 去解析,字节长度和对位完全不同,自然会产生乱码。
-
只有将发送端的字符编码也明确设置为 UTF-16LE,服务端才能正确识别。
后续在配置调试助手或编写通讯程序时,务必在字符编码选项中选择 UTF-16LE(有些软件可能写作 Unicode(小端) 或 UCS-2 LE)。如果需要发送包含中文的指令,按此编码发送即可。
之前采用tcp调试助手给伟迪杰设备发指令,一直提示协议错误或是通讯错误,发现打码机采用unicode通讯协议,但是tcp调试助手用utf8或gbk,ascii编码都不行。
于是就干脆自己用工作开发一个多编码协议的pytcper名称的tcp调试助手,附件即是。经多次测试,发现unicode通讯协议是采用的 UTF-16LE编码。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)