昨天给银行维护一个运行多年的程序,socket通信类程序。发现接收到的报文较原报文长度少了几位导致报文转换出错。
经过分析发现是数据编码问题,getbytes() 和 string 后长度不一致。原报文中的有全角的标点字符。由于是运行多年的程序不知道对方的数据编码也无从询问,经过一番测试gbk gb2312 utf-8 等都不行。最后通过度娘 查询到 gb18030这个编码,解决了问题。在此处做个标记同时分享个大家。
在维护银行的一个长期运行的socket通信程序时,遇到接收报文长度与原报文不符的问题。经排查发现是由全角标点字符引起的编码差异。通过尝试多种编码格式最终采用gb18030编码解决问题。
昨天给银行维护一个运行多年的程序,socket通信类程序。发现接收到的报文较原报文长度少了几位导致报文转换出错。
经过分析发现是数据编码问题,getbytes() 和 string 后长度不一致。原报文中的有全角的标点字符。由于是运行多年的程序不知道对方的数据编码也无从询问,经过一番测试gbk gb2312 utf-8 等都不行。最后通过度娘 查询到 gb18030这个编码,解决了问题。在此处做个标记同时分享个大家。

被折叠的 条评论
为什么被折叠?