原网页 今天在写代码通过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]); }); 这样中文中不就没有乱码了