Python 通过Socket.IO传递外来字符

Python 通过Socket.IO传递外来字符,python,socket.io,character-encoding,flask-socketio,mojibake,Python,Socket.io,Character Encoding,Flask Socketio,Mojibake,我正在做一件非常简单的事情,就是通过Socket.IO向我的Flask应用程序发送一条消息。它对英语来说就像一种魅力,但其他一些语言在这个过程中会发生一些变化 下面是最简单的工作示例 testapp.py: from flask import Flask from flask_socketio import SocketIO app = Flask('example') socketio = SocketIO(app) @socketio.on('test') def on_con

我正在做一件非常简单的事情,就是通过Socket.IO向我的Flask应用程序发送一条消息。它对英语来说就像一种魅力,但其他一些语言在这个过程中会发生一些变化

下面是最简单的工作示例

testapp.py:

from flask import Flask
from flask_socketio import SocketIO

app      = Flask('example')
socketio = SocketIO(app)

@socketio.on('test')
def on_connect(data):
    print(data)

if __name__ == '__main__':
    socketio.run(app)
index.html:

<!doctype html>
<html>
    <body>
        <script type="text/javascript" src="js/socket.io.js"></script>
        <script>
            var socket = io.connect('http://localhost:5000');
            socket.on('connect', function() {
                socket.emit('test', 'ASCII text');
                socket.emit('test', 'Český text');
            });
        </script>
    </body>
</html>

var socket=io.connect('http://localhost:5000');
socket.on('connect',function(){
emit('test','ASCII text');
socket.emit('test','ýeskýtext');
});
我在控制台上看到的不是预期的
ýeskýtext
,而是
Śeský733; text

我正在使用服务器包(Flask SocketIO 3.0.2、python SocketIO 2.0.0、python engineio 2.2.0)和客户端(socket.io.js 2.1.1)的最新版本,并检查了我的两个文件是否都是UTF-8编码的

一些bug报告并提到在1.x和2.x版本之间发生的重大变化,因此我尝试使用一些旧版本的客户端(1.4.8、1.7.4),而不是最新版本。结果并没有好多少:
ÃeskÄ203; text

这是初学者的东西,所以一定有一个流行的问题,所以它已经涵盖。我可能就是找不到。所以我错过了什么