中文在sql server正常显示,用python3.8读取后也正常显示,但再从python传到android studio后就出现部分乱码

中文在sql server正常显示,用python3.8读取后也正常显示,但再从python传到android studio后就出现部分乱码

问题描述:

在sql server显示的值如下:

图片说明

然后在python3.8(已在文件开头声明使用utf-8编码)的pymssql读取后,print读取内容也显示正常的中文。然后把结果使用utf-8编码的方式进行json.dump,得到一个json字符串,再将其转化为二进制流传输到android studio客户端。android studio客户端接受到二进制流后,用utf-8编码转化为字符串,却得到如下结果:

图片说明

我就想不通了,我全程都用utf-8编码,这乱码是怎么来的?我怀疑在sql server储存的这中文是GBK编码,由此导致了问题。但不知道整个事情的来龙去脉是怎样的,能否有人给我解惑并告知解决方案?

目测你的字符串的前面多出来的不只是'广'一个字
这说明你的json序列化,二进制,网络传输这3个环节必然有一个地方出错,导致分界符错乱,或者数据包混入了别的内容。
比如说作为字符串长度的某个整数。
具体你要检查下了

那你都用GBK编码和解码,不要用utf8编码

采用流方式传输,检查一下发送的字节流和接收是否一致,接收时是否按约定进行拆解