javascript - 将 UTF-8 数据转换为正确的字符串格式

标签 javascript node.js unicode utf-8 character-encoding

如果我通过套接字接收到一个 UTF-8 字符串(或者就此而言通过任何外部源),我希望将它作为一个正确解析的字符串对象。下面的代码说明了我的意思

var str='21\r\nJust a demo string \xC3\xA4\xC3\xA8-should not be anymore parsed';

// Find CRLF
var i=str.indexOf('\r\n');

// Parse size up until CRLF
var x=parseInt(str.slice(0, i));

// Read size bytes
var s=str.substr(i+2, x)

console.log(s);

这段代码应该打印出来

Just a demo string äè

但由于未正确解析 UTF-8 数据,它只解析到第一个 Unicode 字符

Just a demo string ä

谁知道如何正确转换它?

最佳答案

看来你可以使用这个decodeURIComponent(escape(str)):

var badstr='21\r\nJust a demo string \xC3\xA4\xC3\xA8-should not be anymore parsed';

var str=decodeURIComponent(escape(badstr));

// Find CRLF
var i=str.indexOf('\r\n');

// Parse size up until CRLF
var x=parseInt(str.slice(0, i));

// Read size bytes
var s=str.substr(i+2, x)

console.log(s);

顺便说一句,当您混合使用 UTF-8 和其他类型的编码时,就会出现这种问题。您也应该检查一下。

关于javascript - 将 UTF-8 数据转换为正确的字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24809826/

相关文章:

javascript - 如何在Electron中触发node filename.js文件?

javascript - 如何使用 gulp 从以下配置自动构建

python - 如何让 matplotlib 在数字格式化程序中使用等宽 '+' 和 '-' ?

c++ - ICU UnicodeString 到 Locale 编码

导入 matplotlib 时出现 Python Unicode 解码错误

javascript - 单击按钮时显示 .JOIN JQuery 错误消息

javascript - 使用 moment 在 javascript 中转换字符串

node.js - Meteor 中的线性执行模型是什么?

javascript - 附加到 IE 中的正文问题

javascript - KendoUI MVVM 绑定(bind)根据显示值手动更新源