纠结了数日,终于搞定了乱码问题,归结是tomcat配置问题,在tomcat server.xml中有2个参数是配置编码的,一个是URIEncoding,另一个是useBodyEncodingForURI.
1. URIEncoding
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
参数值为字符集,比如"UTF-8"等,这个参数在对http-get请求时有效,很多时候get请求的乱码起源,就是来自这里.任何http-get请求首先经过tomcat进行编码,编码的字符集就是使用"URIEncoding",编码之后整理成httpServerRequest参数交付给application;如果自己的web application也使用了各种url编码(比如在web.xml中配置Filter等),仍然无法改变tomcat对查询字符串编码的结果.
2. useBodyEncodingForURI
This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x, where the encoding specified in the contentType, or explicitly set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false .
参数值为"true"或"false",表示"是否使用contentType中的encoding方式对URI进行编码";如果为true,且http请求中,在contentType中指定了编码方式,那么将采用contentType的编码方式去解码url之后的查询参数,将忽略URIEncoding的配置.此参数仍然只对http-get请求有效,tomcat无需对post请求进行编码.
所以在get请求时,如果contentType指定了编码方式,将会带来一定的问题(最大的问题就是,服务器端对查询字符串的编码方式无法统一),最后我决定让 useBodyEncodingForURI 参数保持默认(false):即所有的URL查询字符串的编码采用URIEncoding的参数(UTF-8),服务器端编码保持原来的统一方式.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
相关推荐
在Tomcat环境下运行Web应用程序时,如果页面或请求中包含了中文字符,可能会出现乱码的情况。这种乱码现象通常是由于字符编码设置不一致导致的。Tomcat默认使用的字符集是ISO-8859-1,而大多数中文网页和文件采用的...
解决tomcat中文乱码问题,有详细的解释说明,希望对需要的人有所帮助
一般我们所装的linux服务器,是中文版的,所以系统环境的编码是gbk,然而我们项目的编码是UTF-8,这就必须在tomcat的server.xml文件中修改,在两个地方添加 URIEncoding="UTF-8",具体代码如下:
综上所述,通过合理设置JSP页面编码、配置请求过滤器以及进行必要的编码转换,可以有效解决Tomcat环境下中文乱码的问题。在实际应用中,还需要根据具体情况选择合适的解决方案,并注意保持前后端编码的一致性。
Docker 容器中 Tomcat 部署出现中文乱码解决方案 在 Docker 容器中部署 Tomcat 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale...
Ubuntu下使用Tomcat搭建网站出现中文乱码的问题 在 Ubuntu 操作系统下使用 Tomcat 搭建网站时,可能会出现中文乱码的问题。这是由于字符集的不统一所致。为了解决这个问题,需要统一服务器的字符编码,包括 Linux ...
### tomcat日志乱码处理方法总结 在日常运维或者开发过程中,经常遇到Tomcat的日志出现乱码的情况。这不仅影响阅读体验,更有可能在排查问题时带来不便。本文将详细总结几种常见的Tomcat日志乱码处理方法,帮助大家...
Tomcat请求访问流程(逻辑).vsdx
标题中的“tomcat下catalina.out日志乱码问题处理”主要涉及的是在Tomcat服务器运行过程中,输出的日志文件`catalina.out`中,中文字符显示为乱码的状况。这通常是由于字符编码不匹配导致的,因为Tomcat在读取或写入...
总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...
在使用Apache Tomcat服务器的过程中,有时会遇到中文乱码的问题,这主要表现为在日志输出、控制台打印或者Web应用中的请求参数、响应内容显示不正常,出现问号或者其他非中文字符。这个问题通常是由于字符编码设置不...
tomcat get提交中文乱码解决方案,修改tomcat server.xml 中以下为
"idea日志乱码和tomcat日志乱码问题的解决方法" 本文主要介绍了idea日志乱码和tomcat日志乱码问题的解决方法,旨在帮助开发者解决日志乱码问题,提高开发效率和质量。 知识点1:Tomcat日志乱码问题 Tomcat日志...
### MyEclipse Tomcat 控制台乱码设置详解 在进行Web开发时,尤其是使用Java进行开发的过程中,经常遇到的一个问题就是控制台出现乱码。这种情况不仅会影响开发体验,还可能导致一些难以察觉的问题。本文将详细介绍...
### Tomcat与Servlet乱码问题解析及解决方案 #### 一、引言 在Web开发过程中,经常遇到的一个问题就是字符编码的问题,特别是在处理中文字符时,如果编码设置不当,很容易出现乱码的情况。本文主要围绕Tomcat服务器...
"Tomcat中文乱码处理方法" Tomcat中文乱码处理方法是指在使用Tomcat服务器时,遇到中文乱码问题的解决方法。中文乱码是指在网页中显示的中文字符被错误地显示为乱码,影响用户体验和网站的可读性。 第一种解决方法...
TOMCAT乱码问题解决方法 TOMCAT乱码问题是jsp网页制作与开发中常见的问题。造成乱码的原因是tomcat对表单提交和GET请求的处理方式不同。Tomcat4和Tomcat5处理乱码的方法不同,在Tomcat5中,需要使用Filter设置字符...
解决 POST GET 请求乱码问题 在 Web 开发中,POST 和 GET 请求可能会出现乱码问题,导致中文参数无法正确传输和解析。今天,我们将讨论如何解决 POST 和 GET 请求乱码问题。 解决 POST 请求乱码问题 在 Spring ...