码迷,mamicode.com
首页 > Web开发 > 详细

http通信get,post 中文乱码问题原因分析

时间:2016-04-15 12:19:25      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

转载请注明出处,谢谢!

以前写过一些解决中文乱码的博客。但是以前只给了解决方案,并没有分析原因。

今天来分析一下乱码的原因:


1.通过浏览器给后台提交数据的时候,默认使用的是ISO-8859-1提交的

所以在Servlet中收到中文数据时要做编码转换。

把字符串按照iso-8859-1转换为字节,然后把字节转换为utf-8

name = new String(name.getVBytes("iso-8859-1","utf-8"));[如果没有这个,控制台可以输出正确中文,但是响应界面还是会乱码(Servlet界面)]

同时需要设置返回接收的文本类型(响应头的文本类型)response.setContentType("text/html;charset=utf-8")

get请求

中文数据

浏览器会对编码做转换,转换为服务器可识别的编码

所以客户端app通过get请求给服务端发送数据时需要对中文做转码操作

URLEncoder.encode(string,"utf-8")

post请求就不需要这一步转码操作了{这个跟Android系统有关,android系统默认按照utf-8编码发送数据,而get方式是通过url发数据的}

http通信get,post 中文乱码问题原因分析

标签:

原文地址:http://blog.csdn.net/wei_chong_chong/article/details/51152823

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!