对于做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即可。
相信通过这两段配置,你再也不用担心遇到乱码啦,当然数据库还有可能出现乱码,那将是另一篇文章的事啦!
分享到:
相关推荐
本主题聚焦于"boa服务器get/post请求中文乱码问题",并提及了sqlite3数据库处理中文乱码的情况。以下将详细介绍这两个方面的知识点。 1. Boa服务器与HTTP请求中文乱码: Boa服务器是一个轻量级的Web服务器,适用于...
解决 POST GET 请求乱码问题 在 Web 开发中,POST 和 GET 请求可能会出现乱码问题,导致中文参数无法正确传输和解析。今天,我们将讨论如何解决 POST 和 GET 请求乱码问题。 解决 POST 请求乱码问题 在 Spring ...
本篇将详细讲解如何处理中文乱码问题,特别是在HTTP的GET和POST请求中。参考文档来源于CSDN博主的文章,我们将围绕这个主题进行深入探讨。 首先,我们需要理解中文乱码问题产生的原因。当HTTP请求发送含有中文字符...
本文将详细阐述GET和POST请求中文乱码的处理方式,以帮助开发者解决这类问题。 首先,我们需要了解为什么会出现中文乱码。在HTTP请求中,数据通常是按照ASCII编码进行传输的,而中文字符通常使用UTF-8或其他多字节...
使用过滤器实现GET请求和POST请求的中文乱码问题,只需在自己的Web应用中的web.xml中配置该filter即可使用。
但是,需要注意的是,这个方法只对 POST 方法有效,对于 GET 方法无效。 四、GET 和 POST 方法的区别 在 Tomcat 中,GET 和 POST 方法的编码处理方式不同。POST 方法可以使用 request.setCharacterEncoding 方法...
本文将详细介绍如何完美解决GET和POST请求中的中文乱码问题。 首先,我们来理解GET和POST请求的区别。GET请求通常用于获取资源,其请求参数会附加到URL后面,以问号(?)分隔,多个参数之间用&符号连接。而POST请求...
filter是javaWeb中一个十分重要的知识点,可以拦截webApp的所有请求。 使用场景: 1、可以利用filter做到网站自登录。...2、可以利用filter全局修改参数编码,从而解决中文乱码问题(十分重要)。
以下将详细解释如何解决Java中处理POST和GET请求时的中文乱码问题。 **POST请求的处理** 1. **表单页面设置**:在HTML表单所在的页面头部,使用`<meta>`标签指定页面的字符集,例如`;charset=utf-8">`。这使得...
3. 除了GET请求,POST请求也可能遇到类似问题,需要同样处理。 总结,解决Spring MVC中GET请求中文乱码问题的关键在于确保从客户端到服务器再到客户端的整个链路中,字符编码的一致性和正确设置。通过调整配置、...
对于POST请求的中文乱码问题,我们主要从以下几个方面着手: 1. **配置Spring MVC的字符编码过滤器**: 在Spring MVC的web.xml配置文件中,添加`CharacterEncodingFilter`,指定请求和响应的字符编码为UTF-8。例如:...
"3,indy10.6D7下Get&Post中文乱码解决.txt"是针对D7环境下Indy10.6 GET和POST请求中文乱码问题的解决方案。这个问题通常由字符编码不一致导致,例如服务器和客户端之间没有统一的编码标准,或者在转换过程中没有...
在进行Web开发时,我们经常会遇到Ajax GET请求发送中文参数时出现乱码的问题...在提供的压缩包文件`strtus-ajax-by-get-zh-garbled`中,可能包含了关于Struts框架下解决Ajax GET请求中文乱码的示例代码,可以参考学习。
在Java代码中,当通过HTTP请求传输包含中文的JSON数据时,前端通常会使用JavaScript的`JSON.stringify`函数将JSON对象转换为字符串,并通过GET或POST请求传递给后端。在JavaScript中,字符串默认使用UTF-8编码,因此...
通过以上方法,我们可以有效地解决POST和GET请求中的乱码问题。确保在客户端、服务器端以及数据存储环节都保持字符编码的一致性,是防止乱码的关键。在实际开发中,一定要养成良好的编码习惯,正确地处理字符集转换...
在本文中,我们将详细介绍乱码问题的原因、类型和解决方法。 一、编码不一致的原因 编码不一致是乱码问题的主要原因。编码不一致可能出现在多个方面: * 页面编码:jsp 默认 iso8859-1 * 服务器编码:tomcat 默认...
自定义Filter来解决web项目中的乱码问题,包括get请求和post请求,使用包装设计模式。
通过上述步骤,我们就能使用过滤器有效解决GET请求的乱码问题。在实际开发中,我们通常会将过滤器应用于整个Web应用,以便所有请求都能得到统一的编码处理。此外,对于POST请求,由于其参数是在请求体中传递的,因此...
然而,在处理中文参数时,尤其是通过GET和POST方法传递时,经常会出现乱码问题。这通常是由于字符编码不一致或者处理不当导致的。以下是对这一问题的详细解析: 首先,我们需要理解字符编码的基本概念。在Web中,...
本文将深入探讨如何利用Java的HttpClient库在后台模拟发送GET和POST请求,以及如何处理中文乱码问题。 首先,我们来理解GET和POST两种请求方法。GET请求通常用于获取服务器上的资源,它将参数附加到URL中,具有可...