开发者社区> nqmysb> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Get,Post请求中文乱码问题有效解决方法

简介: 对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考 http://zhaomin819111.blog.163.com/blog/static/10659004200943112950956/ 本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同。
+关注继续查看
对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考

http://zhaomin819111.blog.163.com/blog/static/10659004200943112950956/

本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同。

本文只介绍最方便的一种:

1、针对Post方式提交的请求如果出现乱码,可以每次在request解析数据时设置编码格式:

request.setCharacterEncoding("utf-8");

也可以使用编码过滤器来解决,最常用的方法是使用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"
);

2、针对Get方式的乱码问题,由于参数是通过URL传递的,所以上面通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");

当然也有更简便的方法,那就是在服务器端配置URL编码格式:

修改tomcat的配置文件server.xml:
             <Connector URIEncoding="UTF-8" 
                 port="8080"   maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               connectionTimeout="20000" disableUploadTimeout="true" />

只需增加 URIEncoding="UTF-8"  这一句,然后重启tomcat即可。

相信通过这两段配置,你再也不用担心遇到乱码啦

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
关于request的细节使用,解决中文乱码问题
关于request的细节使用,解决中文乱码问题
57 0
中文乱码的原因及解决方法
中文乱码的原因及解决方法
577 0
PHP解决中文乱码问题
初学PHP,在汉字页面间传输和转换的时候,遇到了中文乱码问题。 究其原因乱码无外乎以下几种情况: 1、html页本身的乱码问题, 解决方法:纯html页使用 2、php页面本身存在乱码,解决方法: header("Content-type=text/html;charset=utf-8"); 3、在html页和php处理页均没有错误,但是数据在传输过程中出现了乱码,这时就应该考虑一下html页与php处理页的编码方式是否一致了,只有编码方式一致,才能获得正确的数据信息。
894 0
Servlet中文乱码!
今天做Servlet输出中文的时候,不管怎么做,中文都乱码。后来用MyEclipse自动生成一个Serlvet,加入中文,正常。然后对比两个文件,发现了出问题的地方。看下面: 中文正常:  response.
525 0
servlet中文乱码方法
1 提交页编码为:GBK 2 servlet获取提交值用gbk解码 String s=new String(request.getParameter("tbxname").getBytes("ISO-8859-1"),"GBK"); out.println(s);   原因请参考(引): 在 servlet引擎实现 request.getParameter("myparam")时,会先在一个缓存里找一下,如果没有,就会开始解析参数并把解析后的参数和其对应的值放入缓存中。
665 0
用记事本解决js中文乱码问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zergskj/article/details/1484691 今天要实现一个效果,即在用户提交表单采用AJAX技术检测用户名是否存在,本身程序实现过程很简单。
823 0
+关注
nqmysb
专注前后端全栈技术,大数据等方向研究,个人博客网站 liaocan.top
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载