nodejs中web请求乱码

本文介绍如何解决使用Node.js进行HTTP GET请求时遇到的中文乱码问题,并提供了一种改进的方法来确保中文字符正确解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原网页 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步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值