【发布时间】:2014-06-03 12:05:52
【问题描述】:
我正在尝试使用 socket.io 创建一个非常简单的聊天应用程序。它工作正常,但 utf8 数据。我尝试发送一些包含 utf8 内容的消息时出错。
Error: Invalid continuation byte
at Error (<anonymous>)
at readContinuationByte (F:\nodejs\node_modules\socket.io\node_modules\engin
e.io\node_modules\engine.io-parser\node_modules\utf8\utf8.js:127:9)
at decodeSymbol (F:\nodejs\node_modules\socket.io\node_modules\engine.io\nod
e_modules\engine.io-parser\node_modules\utf8\utf8.js:167:12)
at Object.utf8decode [as decode] (F:\nodejs\node_modules\socket.io\node_modu
les\engine.io\node_modules\engine.io-parser\node_modules\utf8\utf8.js:201:17)
at Object.exports.decodePacket (F:\nodejs\node_modules\socket.io\node_module
s\engine.io\node_modules\engine.io-parser\lib\index.js:150:17)
at WebSocket.Transport.onData (F:\nodejs\node_modules\socket.io\node_modules
\engine.io\lib\transport.js:102:24)
at WebSocket.onData (F:\nodejs\node_modules\socket.io\node_modules\engine.io
\lib\transports\websocket.js:75:30)
at WebSocket.EventEmitter.emit (events.js:98:17)
at Receiver.self._receiver.ontext (F:\nodejs\node_modules\socket.io\node_mod
ules\engine.io\node_modules\ws\lib\WebSocket.js:697:10)
at Receiver.opcodes.1.finish (F:\nodejs\node_modules\socket.io\node_modules\
engine.io\node_modules\ws\lib\Receiver.js:397:14)
Program node chat.js exited with code 8
我该如何解决?
//编辑
我尝试从服务器发送这些字符æøå,并在客户端输出æøå。好像是ANSI 个字符。
【问题讨论】:
-
你的 .js 文件是 utf-8 编码的吗?这很重要
-
是的。我使用 NotePad++ 和这个文件
encode in UTF-8 without BOM. -
你能显示导致错误的 utf-8 内容吗?它是普通的拉丁文字还是某种异国情调?
-
á、ú、é或类似的东西,即使是那些单个字符。 -
感谢您的热情。经过几个小时的搜索,我找到了这篇文章,github.com/Automattic/engine.io-parser/issues/21。我只是忘了在客户端更新我的 socket.io。 ~~
标签: javascript node.js utf-8 socket.io