Http网络传递参数中文乱码问题
来源:互联网 发布:强生研发 知乎 编辑:程序博客网 时间:2024/05/22 13:31
我们通过Http连接网络传递中文参数时经常遇到乱码问题,这节我们将一起解决这个问题.乱码问题一般是客户端和服务端编码方式不一至造成的.
首先统一客户端和服务端的编解码方式为UTF-8.
Web服务端一般采用Tomcat服务器,Tomcat默认编码方式为ISO-8859-1,iso-8859-1是不支持中文的,也就是说不做处理,中文是一定乱码的。
代码处理可用
String userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8");
更改Tomcat编码方式为UTF-8.
在TOMCAT的配置文件的server.xml中更改:
<Connector port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
添加URIEncoding=UTF-8
Android客户端
发送Get请求,首先对请求URL地址的中文进行UTF-8编码.
String name =URLEncoder.encode("中国万岁","UTF-8");
发送Post请求,对参数也要进行UTF-8编码,方式如下:
BasicNameValuePair userNamePair = new BasicNameValuePair("userName", "李四");BasicNameValuePair passWordPair = new BasicNameValuePair("passWord", "321");ArrayList<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();parameters.add(userNamePair);parameters.add(passWordPair);UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters,HTTP.UTF_8);httpPost.setEntity(entity);httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");//乱码关键代码1.UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters,HTTP.UTF_8);2.httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
注:如果在Servlet中设置request.setCharacterEncoding(“UTF-8″);上面第2行代码可以不设置.
1 0
- Http网络传递参数中文乱码问题
- Http网络传递参数中文乱码问题
- Http网络传递参数中文乱码问题解决办法
- Http网络传递参数中文乱码问题解决办法
- 中文参数传递乱码问题
- jsp传递中文参数乱码问题
- 链接传递中文参数乱码问题
- URL传递中文参数乱码问题
- Struts2 URL传递中文参数乱码问题
- url传递中文参数乱码的问题
- URL传递中文参数乱码问题
- ajax传递参数中文乱码问题
- ajax post传递参数中文乱码问题
- tomcat_get方式传递中文参数乱码问题
- 处理jsp中文参数传递乱码问题
- URL传递中文参数乱码问题
- Struts2 URL传递中文参数乱码问题
- URL传递中文参数乱码问题
- 算法--冒泡,选择,二分
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal (Medium) (cpp)
- unity3d场景优化
- ios-UI高级 相册的相关处理和音乐播放AVFoundation框架的内容总结
- iOS程序启动原理
- Http网络传递参数中文乱码问题
- PHP数据库操作
- 人脸识别经典算法实现(二)——Fisher线性判别分析
- 最短路径Dijkstra算法-优先队列优化
- linux设置环境变量
- 十分钟玩转 jQuery
- make命令 clean命令
- QDUOJ 10 - LC和加玛帝国的公主(马拉车)
- 二十四节气的研究