Socket.io发出特殊字符

时间:2016-11-04 17:32:03

标签: javascript node.js socket.io

我正在一个基于Socketio 0.9的小项目中工作。一切都在努力,但我有一个小的特殊字符问题

我正在从发送到服务器的Web客户端中的javascript创建一个动态JSON对象:

var config = new Object();
config.name1 = 'Iñaki';
config.name2 = 'Óscar';
config.name3 = 'Alba';

var data = new Array();
data.push(config);

var myJson = new Object();
myJson.hash = hash;
myJson.serial = serial;
myJson.data = data;

iosocket.emit('config', myJson));

在接收端的服务器中,将其发送给其他客户端:

    socket.on('config', function (data) {
        ...
        socket.broadcast.to(myroom).emit("data", data.data);
    }

此时,如果我的配置Javascript对象中有“Iñaki”或“Óscar”这样的特殊字符,我的数据不会从socketio发送到我的客户端。但是,如果我用非特殊字符名称填写对象,它开箱即用。

¿为什么?

注意:我无法升级到socketio 1.x. 注意:我的server.js已保存为UTF-8。

感谢。

1 个答案:

答案 0 :(得分:1)

我今天正在努力解决同样的问题。

在我的情况下,问题是服务器和客户端的socket.io版本不一样。我使用的是socket.io-client 2.0.1和Socket.io 1.4.0,因此将socket.io-client版本降级到1.4.0解决了这个问题。