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