您的位置:首页 > 理论基础 > 计算机网络

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

2016-04-14 17:05 603 查看
转载请注明出处,谢谢!http://blog.csdn.net/wei_chong_chong/article/details/51152823

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

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

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

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

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

name = new String(name.getVBytes("iso-8859-1","utf-8"));

同时需要设置返回接收的文本类型(响应头的文本类型)response.setContentType("text/html;charset=utf-8")[如果没有这个,控制台可以输出正确中文,但是响应界面还是会乱码(Servlet界面)]

get请求

中文数据

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

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

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

post请求就不需要这一步转码操作了{这个跟Android系统有关,android系统默认按照utf-8编码发送数据,而get方式是通过url发数据的}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: