gpt4 book ai didi

python - 从客户端接收 'utf-8' 时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:42 24 4
gpt4 key购买 nike

我正在尝试使用 Flasksocket.io 在服务器和客户端之间创建双向通信。

一切正常,直到服务器从客户端收到 utf-8 字符串,该字符串出现乱码。从服务器发送到客户端工作正常,并且在从客户端发送到服务器之前,客户端正确打印消息。

这里是一些重现问题的代码:

应用程序.py:

import flask
from flask_socketio import SocketIO, emit, disconnect

import json

app = flask.Flask(__name__)
socket_io = SocketIO(app)

@socket_io.on('pull')
def socket_io_handle_pull():
json_msg = {
'msg': "abcćčddžđefghijklmnnjoprsštuvzž"
}
print("Pushing", json_msg)

socket_io.emit('response', json_msg)

@socket_io.on('push')
def socket_io_handle_push(json_msg):
print("Pushed:", json_msg)

@socket_io.on('disconnect')
def socket_io_handle_disconnect():
disconnect()

@app.route('/')
def root():
return flask.render_template(
'index.html'
)

if __name__ == '__main__':
socket_io.run(app)

index.html:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
</head>
<body>
<script type="text/javascript">
var socket = io.connect('http://' + document.domain + ':' + location.port);

socket.on('response', json => {
socket.emit('push', json);
})

socket.emit('pull');
</script>
</body>
</html>

输出:

Pushing {'msg': 'abcćčddžđefghijklmnnjoprsštuvzž'}
Pushed: {'msg': 'abcÄ\x87Ä\x8dddA3Ä\x91efghijklmnnjoprsA!tuvzA3'}

最佳答案

您正在使用 1.x 版本的 Socket.IO 客户端,其中有 known problems UTF-8 字符串的双重编码。您应该尝试已解决此问题的 2.x 版本。

关于python - 从客户端接收 'utf-8' 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49475762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com