NodeJs实战-待办列表(4)-解决待办事项中文乱码问题

乱码问题在哪里产生的

运行第3节的server.js, 当添加中文待办事项时候,会产生中文乱码问题。乱码可能在以下地方产生:

  1. 发送请求封装参数的时候
  2. 参数传输到后台,解析的时候发生乱码
  3. 数据读取返回到前台序列化的时候发生乱码

定位乱码问题

遇到问题不要慌,先 debug 看看

VSCode 启动 NodeJs 调试模式

  1. 首先定位到左侧导航栏的 server.js,鼠标左键点击就好
    在这里插入图片描述
  2. 使用 debug 模式运行 server.js,运行 -> 启动调试,也可以使用快捷键F5
    在这里插入图片描述
    启动调试,发现端口被占用
    在这里插入图片描述
    执行以下命令看那个进程占用了端口 netstat -ano|findstr 3000
C:\Users\Administrator>netstat -ano|findstr 3000
  TCP    127.0.0.1:3000         0.0.0.0:0              LISTENING       85772
  TCP    127.0.0.1:3000         127.0.0.1:57460        ESTABLISHED     85772
  TCP    127.0.0.1:57460        127.0.0.1:3000         ESTABLISHED     67588

使用 taskkill 命令终止进程

C:\Users\Administrator>taskkill /pid 85772
错误: 无法终止 PID 为 85772 的进程。
原因: 只能强行终止这个进程(带 /F 选项)。

C:\Users\Administrator>taskkill /pid /f 85772
错误: 无效语法。需要 '/pid' 的值。
键入 "TASKKILL /?" 以了解用法。

C:\Users\Administrator>taskkill /f /pid 85772
成功: 已终止 PID 为 85772 的进程。

C:\Users\Administrator>taskkill /f /pid 67588
成功: 已终止 PID 为 67588 的进程。

再次启动调试,出现调试窗口
在这里插入图片描述
3. 需要调试的代码前面加上断点,鼠标点击就行在这里插入图片描述
代码前面会出现小红点

  1. 页面增加中文item
    在这里插入图片描述
    发现从前端穿过来的时候就乱码了

浏览器中调试JS

打开浏览器开发者模式,先看看 Network 传的参数
在这里插入图片描述
乱码的参数为 %E4%B8%AD%E6%96%872222,我们在浏览器的 console中调试js。与编码有关的方法有 encodeURI, decodeURI。调试这个方法可以看出 中文2222 url 经过了 encodeURI,变成了 %E4%B8%AD%E6%96%872222
在这里插入图片描述
有一种方式,在后端接收的时候解码就行,于是修改 server.js

function findItemData(urlParse) {
	if (urlParse.query.length > 0) {
		var queryArray = urlParse.query.split('=');
		if (queryArray.length >= 2) {
			return decodeURI(queryArray[1]);
		}
	}
	return '';
}

保存之后,重新启动调试,发现解码成功
在这里插入图片描述

效果图

执行添加

  1. 添加 1111
  2. 添加 en1111
  3. 添加 中文11111
    在这里插入图片描述

执行完成

  1. 完成 1111
  2. 完成 en1111
  3. 完成 中文1111
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chengdu.S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值