我正在做一件非常简单的事情,只是通过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>
控制台上出现Český text
,而不是预期的ÄŚeskĂ˝ text
。
我正在使用服务器软件包(Flask-SocketIO 3.0.2,python-socketio 2.0.0,python-engineio 2.2.0)和客户端(socket.io.js 2.1.1)的最新版本,还检查了我的两个文件都是UTF-8编码的。
一些错误报告和questions提到了1.x和2.x版本之间发生的重大更改,因此我尝试使用客户端的某些旧版本(1.4.8、1.7.4)而不是最新的。结果并没有好得多:ÃÅeskÄË text
。
这是初学者的东西,因此必须已经有一个受欢迎的SO问题解决了。我可能找不到。所以...我想念什么?