原网页 http://www.web-jia.com/view.php?a=24
今天在写代码通过nodejs中http的get获取数据的时候中文有时候会是乱码
看nodejs文档中的示例代码也是这样写
let rawData = '';
res.on('data', (chunk) => rawData += chunk);
res.on('end', () => {
try {
let parsedData = JSON.parse(rawData);
console.log(parsedData);
} catch (e) {
console.log(e.message);
}
});
这代码一般情况下是没有什么问题的,如果有中文的时候是有可能会是乱码
刚开始不知道怎么回事
后来明白了
其中chunk是buffer对象保存的是字节,这是根据socket的二进制数据
因为中文的utf8一个中文一般是3-4个字节,如果字节不全的话转成字符串的时候就会乱码了
所以上的代码要改成
let uData = Buffer.allocUnsafe(0);
res.on('data', (chunk) => {uData = Buffer.concat([uData, chunk], uData.length + chunk.length);});
res.on('end', () => {
uData = uData.toString();
let mt = uData.match(appconfig.reg[si][li]);
});
这样中文中不就没有乱码了
三种方法实现Javascript控制ScrollBar(滚动条) 5.2 CSS切换 5个有趣的JavaScript代码片段分享 HTML 5指引下一代网络应用开发标准 stream.js:一个新的JavaScript数据结构 Node.js后端框架设计构想(1) HTML 5怎么就成了RIA“杀手”? Javascript实现动态创建DIV步骤
转载请注明原文地址: https://ju.6miu.com/read-670249.html