当前位置:首页 > 个人杂谈 > 正文内容

解决了标签打印中文乱码的BUG

作者: 葛屹肃 | 日期: 2023-05-11 | 分类: 个人杂谈

近日,客户那边反馈,外箱标签打印时,打印一个订单的标签,常出现漏打的情况。如打印100张标签,只打印出98张标签,漏了2张,需要针对此问题进行分析并解决。

解决了标签打印中文乱码的BUG

标签打印程序已应用于多个客户,其他客户从未反馈此问题,不过,既然客户反馈了,肯定是有BOG的,要分析原因才能解决问题。

前段时间修正过标签打印程序,加入了打印错误写入日志功能,我让客户将日志发给我,看了下日志,发现凡是漏打的是接收的打印指令里有中文乱码的情况,问题就在中文乱码,如何解决呢?

先想到是接收数据转换方式,byte[]转string,试过几个常见的转换方式,均不能完成解决问题。

之前指令打印指令是只管发送成功,不管是否打印成功,这样就会出现漏打情况。

既然日志已记录了错误的打印指令,那么,就是可以监测到每条打印指令是否成功处理的。而程序可以优化下,发一个打印指令后,再接收打印结果,成功则执行下一个打印指令,失败即重发当前打印指令。

如,打100张标签,修改前后对照:

修改前:服务器生成100条打印指令→将指令逐条发送标签打印程序→标签打印程序收到打印指令马上执行。

修改后:服务器生成100条打印指令→发送第一条指令至标签打印程序→标签打印程序收到打印指令马上执行→将打印结果上传给服务器→服务器接收打印结果(成功则发送下一条指令,否则继续发当前指令。

简单来说,即根据打印结果来处理,如果出现打印异常,则重发打印指令,以防止漏打的发生。

处理流程是没有问题,但要防止出现死循环情况,假如一个打印指令连续打印3次都异常,那可能是打印指令本身有问题,因此,连续打印3次异常时,必须删除当前指令,继续执行下一条。

经过这次优化,标签打印中文乱码的BUG是解决,但会否引起其他问题,那就让时间来见证。

版权声明:本文由〖葛屹肃〗发布,转载请注明出处!
文章链接:https://www.geyisu.com/3106.html

  • 评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?

◎欢迎大家参与讨论