用 JSON 来避免中文乱码问题
来源:互联网 发布:淘宝领取的优酷会员 编辑:程序博客网 时间:2024/06/05 18:58
- 问题来源
- 第一步
- 深坑
- 迷茫后的光芒
- 如何解决
- 光明
- 总结
问题来源
最近在用别人提供的 API 搞事情(用姓名和身份证号查准考证号), 用 Postman 进行测试,提交的是表单里面含有中文。具体如下图:
我按照上面的教程,确实可行,如下图:
乐于助人的我,想做个 Web 网站来帮助一些人,so,我开始用 Postman 进行测试。
第一步
我打开 谷歌游览器 的开发人员工具(F12) Network 项,看刚刚那个 Ajax 传输了啥,如图下:
嗯~ 这么简单,我只需要做一个登录界面所有的问题就解决了,好,用Postman 测试一下吧(此时此刻我想我为啥要用 Postman 来进行测试)。
深坑
填好了 Postman 上的数据,点击 Send,什么???这是啥
程序员陷入了沉思,一直在想为什么。此后每天下班就一直在调这些东西。有一天灵感来了,我想这用 Wireshark 进行抓包,我就知道都传来啥,好打开 Wireshark 过滤条件为 tcp.port == 7066,抓的包如下:
游览器 Ajax:
Postman:
我仔细的对比了下,每有什么问题呀,传输的数据都一样!
迷茫后的光芒
下班了,继续想。
两个传输的数据都一样,但结果不一样,试下把 jb(级别)的参数置为空:
嗯!问题就在于中文编码这里!
我又试了不填中文,填中文的 Unicode 字符集。
这里 Ajax 和 Postman 返回的值竟然都一样,那这就是编码问题!
如何解决
下面是好心人提供的源码。里面的 params = JSON.stringify(ks_data),等等这里 Ajax 传输的数据不就是 JSON 了吗。Postman 传输的是 key&value 形式。
var url = "http://app.cet.edu.cn:7066/baas/app/setuser.do?method=UserVerify";var ks_data = {"ks_xm": "","ks_sfz": "","jb": ""};var postdata = {"action": "","params": JSON.stringify(ks_data)};
光明
我猜想,JSON 在传输字符串的时候,会将所有的字符串转为 Unicode 字符集进行传输。嗯,官网就是这样写的!
总结
看来,JSON 很适合网络传输,只关心传输的编码一致就行了,里面的数据会自动传为 Unicode 字符集的。
当这个问题解决时,已经有好多个人的网站可以查了。
最后我四级并没有过。。。
最后的最后这个查准考证的 API,是一个 App 的。
- 用 JSON 来避免中文乱码问题
- php json中文乱码问题
- 解决json中文乱码问题
- 用filter来解决Struts中文乱码的问题
- JSP 用监听器Filter来解决中文乱码问题
- 用过滤器来解决JSP中文乱码问题
- 用过滤器来解决JSP中文乱码问题
- 用过滤器来解决JSP中文乱码问题
- 完全避免中文乱码
- mysql避免中文乱码
- JSON数据的中文乱码问题
- getJSON获取JSON数据中文乱码问题
- HttpPost发送JSON数据中文乱码问题。
- ios json 解析中文乱码问题
- SpringMVC ajax JSON 中文乱码问题
- SpringMVC ajax JSON 中文乱码问题
- HttpPost发送JSON数据中文乱码问题
- Json-lib 解析中文地址乱码问题
- 最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨
- 安卓ExpandableListView的简单使用
- 京东秋招笔试题汇总
- Kubernetes集群监控
- Semaphore Kernel Mode
- 用 JSON 来避免中文乱码问题
- 个人,eclipse配置备用
- 使用maven插件Tomcat7 启动成功但是404的问题
- JavaScript toLocaleString() 方法
- zigbee(题型整理1)
- iOS-图片拼接和图片旋转问题
- java基础学习之——子类重写(覆盖)父类的方法必须满足的条件
- 安装被策略阻止
- Entity Framework Core 2.0 中使用LIKE 操作符