post和get请求中文乱码解决方案
来源:互联网 发布:js call继承原型吗 编辑:程序博客网 时间:2024/05/01 21:37
假设:
url:http://localhost:8080/test?name=测试
1、在服务器进行处理
得到的内容是"iso8859-1",使用
String str = new String(name.getByte("iso8859-1"),"utf-8");
得到正确的值。
ps:这种方式有个缺点;这种方式服务器必须默认使用iso8859-1的方式编码,如果我在TOMCAT更改默认的iso8859-1为utf-8,那么这种方式就无法生效了。
2、在TOMCAT配置文件中设置
在TOMCAT的目录下conf/server.xml中,搜索"8080"端口,如果改了端口按端口号搜索,搜到之后在这个标签中空格输入 URIEncoding="UTF-8" ,它默认是iso8859-1。
ps:这种方式缺点显而易见,换了服务器就要更改,有时候忘记也是很常见的事情。
3、手动编码多一次
游览器和服务器传输都是先编码后解码,对中文的支持不太好,那么能不能把中文事先转换成英文或数字传输呢?
假设:
1、name=测试,在JS标签中,使用encodeURI(param)方法先将“测试” 转成 name=%26%92(瞎编的) 游览器再自动进行URI编码 name=%2525%2592(%的URI编码为%25);
ognl表达式中,使用<s:param name="name" value="%{@java.net.URLEncoder.encode(name,'utf-8')}"> 对值进行URI编码,同时在struts2配置文件中开启静态方法的支持 java.net.URLEncoder.encode()。
struts.xml: name="struts.ognl.allowStaticMehtodAccess" value="true"
2、这时候将这链接GET方式提交了
3、服务器那边得到 name=%26%92 ,我们再使用URIDecoder.decode(name,"utf-8"); 进行解码,这样就得到了“测试”
PS:这种方式是不是比较好,不依赖TOMCAT
二.post请求乱码问题解决方案
1、在action或servlet代码页面,接收参数前处理
request.setCharacterEncoding("utf-8");
2.用spring提供的编码过滤器解决
在Web.xml中增加如下配置(要注意的是它的位置一定要是第一个执行的过滤器):
<filter>
<filter-name>charsetFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
该过滤器要做的其实就是强制为所有请求和响应设置编码格式:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
二.设置tomcat的URIRncoding为UTF-8
位置:Tomcat安装位置,\conf下的server.xml位置
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
该方式也可解决get请求问题
- post和get请求中文乱码解决方案
- post和get请求中文参数出现乱码现象解决方案
- post及get请求中文乱码解决方案
- 针对请求GET和POST请求,出现中文乱码
- jsp使用get和post请求中文不乱码
- 解决Get和Post请求中中文乱码问题
- 解决Get和post请求中中文乱码问题
- 关于get和post请求中文乱码的解决办法
- 解决Get和Post请求中文乱码的问题
- HttpClient使用post和get时Json中文乱码解决方案
- get/post请求:中文乱码问题
- get/post请求中文乱码问题
- get post 中文请求乱码解决方式
- post与get请求中文乱码问题
- SpringMVC-Post/Get请求中文乱码问题
- get,post请求中文乱码问题
- SpringMVC POST/GET 中文乱码 解决方案
- get请求和post请求乱码分析
- VS项目属性
- encodeURI和 encodeURIComponent 的作用及应用
- Linux查看磁盘空间及文件大小命令
- Git历险记(五)——Git里的分支&合并
- Android自定义Dialog以控制其位置和宽高
- post和get请求中文乱码解决方案
- [WIN32]IsWindowVisible
- Android 自定义数字键盘(二)随机数字
- angularJs监听ng-repeat渲染完成
- KNN算法--python实现代码
- SWT中的日期选择控件
- 让我们旋转跳跃不停歇~~~当3D打印遇上八音盒!(三)
- 【C++】学习笔记二十一——if语句
- Scala学习---包和引入