websocket 中文乱码 python
时间: 2023-07-25 15:15:23 浏览: 56
在 Python 中使用 Websocket 传输中文字符时出现乱码,可能也是由于字符编码不一致引起的。解决方法如下:
1. 在客户端和服务器端的代码中,都使用 UTF-8 编码,保持一致。
2. 在发送中文字符时,使用 `json.dumps()` 函数将字符转换为 JSON 格式字符串,再进行发送。在接收数据时,使用 `json.loads()` 函数将 JSON 格式字符串转换为 Python 对象。
下面是一个简单的示例代码:
```python
import json
import websocket
def on_message(ws, message):
data = json.loads(message)
print(data["content"])
def on_error(ws, error):
print(error)
def on_close(ws):
print("Connection closed")
def on_open(ws):
data = {
"content": "你好,世界!"
}
ws.send(json.dumps(data))
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://localhost:8000/ws",
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever()
```
在上面的示例代码中,我们使用了 `json.dumps()` 函数将发送的数据转换为 JSON 格式字符串,在接收数据时使用 `json.loads()` 函数将 JSON 格式字符串转换为 Python 对象。这样就可以保证中文字符的正确传输。