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

原创 2014年12月14日 22:57:24
对于做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:
             <ConnectorURIEncoding="UTF-8" 
                 port="8080"   maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               connectionTimeout="20000" disableUploadTimeout="true" />

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

相信通过这两段配置,你再也不用担心遇到乱码啦,当然数据库还有可能出现乱码,那将是另一篇文章的事啦!

URL编码以及GET和POST提交乱码解决方案

1.  什么是URL编码。 URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发...
  • lfsf802
  • lfsf802
  • 2012年02月04日 09:39
  • 47390

HttpURLConnection以post传数据时中文乱码的一个解决方法

今天在测试自己写的接口时,后台使用HttpURLConnection,以post方式向服务器的接口传数据。但服务器得到的中文是乱码。度娘一早上没找到合适的解决方法。中午一觉醒来随便把 out.writ...

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

对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考...

使用httpclient post请求中文乱码解决办法

在使用httpclient发送post请求的时候,接收端中文乱码问题解决。 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的。可是在使用httpclient发送post请求报文含...

过滤器解决get和post方式提交的中文乱码

对于国内的程序员来说,在做项目时避免不了的问题是中文乱码问题。        如果不使用过滤器的话,在每个servlet中都要进行设置编码,如果是post请求还好,但是如果是get请求,就要手动进行...
  • hyn150
  • hyn150
  • 2017年04月19日 21:23
  • 1252

解决表单Post方式提交的中文乱码问题

在对表单进行提交的时候,例如登陆页面,用户名和密码都正确其他的程序也都没有问题,但是无法进入系统,打断点调试会发现,调用request对象的getParameter(" ")方法从表单中取到对应的值 ...

Postman参数化使用以及中文乱码问题解决

1.参数化详解 准备工作,数据准备 2.使用csv文件时中文乱码可以通过使用txt文本,json文本改变调用json文件改变文件的编码格式解决 3:参数化数据调用的两种方式通过...

如何在Chrome下使用Postman进行rest请求的调试

在web和移动端开发时,常常会调用服务器端的restful接口进行数据请求,为了调试,一般会先用工具进行测试,通过测试后才开始在开发中使用。这里介绍一下如何在chrome浏览器利用postman应用进...

spring mvc 中文乱码(postman)maven工程

spring mvc 中文乱码(postman)maven工程

Get请求,Post请求乱码问题解决方案

之所以出现乱码,主要是由于编码和解码采用的方法不同。 因此保证编码解码格式一致是避免乱码发生的重要前提。 问题背景:JavaWeb技术下,Tomcat作为容器,发送请求的时候出现乱码问题。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Get,Post请求中文乱码问题有效解决方法
举报原因:
原因补充:

(最多只允许输入30个字)