从NodeJS(socket.io)保存到MongoDB转换为ASCII ... WTH?

时间:2014-10-10 21:26:49

标签: mongodb utf-8 mongoose socket.io

我有一个基于socket.io的聊天服务器,可以将消息保存到MongoDB。当用户发送类似ಠ_ಠ的内容时,它会通过套接字发出并正确显示,但当我收到同样的消息并通过Mongoose将其保存到MongoDB时,我最终保存在数据库中的à²_à²。

我认为Mongoose / MongoDB / socket.io默认使用UTF-8 ...为什么在将数据保存到数据库时将数据转换为ASCII?

socket.on('newMessage', function(data){

var data = JSON.parse(data);

var chatMessage = new ChatMessage();
chatMessage.user = data.userId;
chatMessage.room = data.roomId;
chatMessage.message = data.message.toString("utf8");
chatMessage.save(function(err, message){
  // Emits ಠ_ಠ
  socket.broadcast.to(data.roomId).emit('deliverMessage', JSON.stringify(message));
});

我甚至发出保存到MongoDB的内容(消息不是data.message),但是MongoDB已经存储了à²_à... ... SOOOOOO confused:s

我理解编码及其重要性。我的问题是socket.io,mongoDB,mongoose管道的哪一部分正在切换编码以及为什么当一切似乎都在说uft-8?

0 个答案:

没有答案