解决python websocket_server中文乱码问题

2021-06-15 15:12:03 浏览数 (1)

简单的客户端代码

代码语言:javascript复制
#coding=utf-8
from websocket import create_connection

msg = {'a':'a','b':'b' }

ws = create_connection("ws://ws.domain.com:8888")

sendmsg = u'{"msg": ' str(msg) '}'

print(sendmsg)


ws.send(sendmsg)
print(ws.recv())
ws.close()

但是在使用中文消息的时候,python显示就是乱码如下: 大福利发设计方 使用了很多种解码方式均失败

几经周折终于找到解决方案,因为传到python元数据就在网络通讯层自动转码时已经使用某种算法转义,python默认反转义并不能正常解析,使用几种其他转义方法也不生效, 终于发现需要在发送时,客户端先将str消息转为unicode,(字符串前面加个u) 然后在服务端,message = message.encode('raw_unicode_escape').decode(),这样就可以完美解析出中文字符

0 人点赞