`

tomcat的server.xml里面配置URIEncoding的问题,导致post和get访问编码不一致

 
阅读更多

原来的发送短信的包都是好用的,post方式和get方式提交数据都能到后台正确不乱码,因为后台用

content = new String(content.getBytes("ISO8859-1"),"GBK");

 转好了。

最近发现用post方式提交的正常,用IE地址栏里直接用url传递参数就是乱码的。

到服务代码里加了输出在转码前和转码后分别输出,发现,get请求的时候不用转就正常的,这肯定是在这之前有转码的地方了,到tomcat的server.xml里一看,有人加了如下代码(红色)

<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="GBK"/>

(1) tomcat服务器
对于tomcat服务器,该文件是server.xml
<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="GBK"/>
URIEncoding告诉服务器servlet解码URL时采用的编码。

<Connector port="8080" ... useBodyEncodingForURI="true" />
useBodyEncodingForURI告诉服务器解码URL时候需要采用request body指定的编码。

 

去掉后一切正常了。

2
0
分享到:
评论
2 楼 xiaoxin 2014-11-26  
ziguopu 写道
这个就延伸一个问题,到底是在程序内部转码, 还是优先考虑修改服务器配置(开发阶段)


我觉得还是要优先选择程序内部解决问题,不要依赖服务器配置,因为我们的程序会发布到不同工程,不同的应用服务器上,都是已经布置好的环境,不会给这个程序单独安装服务器,所以不能改原来服务器的配置的。
1 楼 ziguopu 2014-10-28  
这个就延伸一个问题,到底是在程序内部转码, 还是优先考虑修改服务器配置(开发阶段)

相关推荐

    tomcat request.getParameter 乱码

    具体而言,通过在`server.xml`文件中修改`Connector`元素的相关属性,以及在程序中设置合适的字符编码,能够确保前后端之间数据传输的一致性和准确性,从而提升用户体验和系统的整体稳定性。希望以上内容能够帮助到...

    Tomcat PostGet 中文編碼處理方法

    ### Tomcat PostGet 中文編碼處理方法 在Web应用开发过程中,中文字符编码问题一直是个常见的技术难题,尤其是在处理HTTP请求中的POST和GET方法时。对于使用Apache Tomcat服务器的应用程序来说,确保中文字符正确...

    解决post get 请求乱码问题

    解决 POST GET 请求乱码问题 在 Web 开发中,POST 和 GET 请求可能会出现乱码...解决 POST 和 GET 请求乱码问题需要对服务器和应用程序进行配置和编码处理。在实际开发中,我们需要根据具体情况选择合适的解决方法。

    修改tomcat的编码为utf-8

    Apache Tomcat作为一款流行的Java应用服务器和Servlet容器,其默认的字符编码可能不总是符合所有项目的需求。特别是对于中文等非ASCII字符的支持,如果未正确配置,则可能导致乱码等问题。因此,将Tomcat的编码修改...

    tomcat字符编码总结

    - **问题**: 页面链接中包含中文参数时,由于浏览器默认编码方式与服务器端不一致,导致乱码。 - **解决方案**: 在生成链接时,使用`URLEncoder.encode("中文", "UTF-8")`对参数进行编码,确保传输过程中字符集的...

    java乱码综合解决方法(不区分get和post)

    GET和POST请求的参数可能携带非ASCII字符,如果编码不一致,就会导致乱码。解决方法是确保服务器和客户端对请求参数的编码和解码使用相同的字符集。 2. **文件读写**:Java在读取或写入文件时,如果没有指定正确的...

    Tomcat中文乱码处理方法.docx

    对于GET数据和URL数据,可以在Tomcat配置文件server.xml的Connector标签中设置useBodyEncodingForURI为true,或者设置URIEncoding为提交数据的网页编码。例如: 第三种解决方法是解决response.sendRedirect中文乱码...

    中文乱码处理方案.docx

    在Tomcat6.0中,对于GET请求,服务器会使用server.xml配置的URIEncoding进行解码。如果URIEncoding设置为UTF-8,服务器能正确解码并处理中文参数,不会出现乱码。但如果URIEncoding设置为其他编码,如ISO-8859-1,就...

    JAVA过滤器filter request.setCharacterEncoding仅对POST提交起作用,对GET提交还是会出现乱码问题

    3. **服务器配置**:在服务器配置文件(如Tomcat的server.xml或webapp的context.xml)中,可以设置`Connector`元素的`URIEncoding`属性,指定服务器解析请求时使用的字符编码,例如`&lt;Connector URIEncoding="UTF-8"/...

    03.SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理呢.zip

    在Spring MVC框架中,处理POST和GET请求时可能会遇到中文乱码的问题,这通常是由于字符编码设置不正确导致的。本文将详细阐述如何解决这些问题。 首先,我们需要理解HTTP请求中的编码原理。HTTP协议本身并不规定...

    Tomcat中文问题之完美解决

    除了使用Filter外,还可以直接在Tomcat的配置文件`server.xml`中设置字符编码,以解决GET方式提交数据时出现的乱码问题。具体步骤如下: 1. **定位Connector元素**: - 找到`server.xml`中的`&lt;Connector&gt;`元素,该...

    乱码问题的解决

    在 server.xml 中设置 useBodyEncodingForURI=”true”,以便将请求体和 uri 的编码一致。 乱码问题的解决需要从多方面入手,包括设置页面编码、服务器编码、客户端编码、数据库编码和超链接的 url 编码等。只有...

    tomcat5中文问题完美解决

    总结,解决Tomcat5中的中文问题,关键在于统一请求处理的字符编码,并确保服务器端和客户端的编码一致。通过上述两种方法,可以有效地解决POST和GET请求的中文乱码问题,实现中文数据的正常显示。

    java获取乱码问题

    针对以上分析,可以通过修改Tomcat服务器的`server.xml`配置文件中的`Connector`节点参数来解决乱码问题。 1. **定位`server.xml`文件**: - `server.xml`文件通常位于Tomcat安装目录下的`conf`文件夹内。 - 打开...

    Struts2中文乱码问题最终解决方案

    - 确保所有服务器配置(如Tomcat的`server.xml`)正确设置字符编码。 - 在前端表单提交时,明确定义编码类型,例如`&lt;form accept-charset="UTF-8"&gt;`。 - 使用统一的编码策略,如在整个项目中使用UTF-8,包括...

    tomcat汇总整理.doc

    当在URL中传递中文字符时,如果不进行特殊配置,Tomcat默认会使用ISO8859-1编码,这可能导致中文显示为乱码。为确保URL中的中文能正确解析,我们需要在Tomcat的配置文件`conf/server.xml`中添加`URIEncoding`属性,...

    SpringMVC解决GET请求时中文乱码的问题.rar

    4. 修改Tomcat配置:在Tomcat的server.xml中,可以修改Connector配置,添加`URIEncoding`属性,指定为UTF-8: ```xml &lt;Connector URIEncoding="UTF-8" ... /&gt; ``` 三、注意事项 1. 确保项目中其他地方,如HTML...

    字符乱码de.pdf

    这个问题的复杂性主要源于字符编码在多个环节的转换过程中可能出现不一致,包括浏览器、Web服务器(如Tomcat)以及应用本身的各种配置。 首先,我们关注GET方式传递参数时的乱码情况。比如,用户在浏览器地址栏输入...

    tomcat中文编码问题

    ### Tomcat中文编码问题详解 #### 一、中文输出处理 **1. JSP页面中的中文输出** 在JSP页面中处理中文输出时,需要确保页面本身的编码与发送到客户端的内容编码一致。以下是一个示例代码片段: ```jsp ...

    中文乱码解决方案.pdf

    为了解决GET请求中的中文乱码问题,可以在Tomcat的`server.xml`配置文件中设置`URIEncoding="UTF-8"`,这样Tomcat在解析URL时会使用UTF-8编码。 3. **POST请求的乱码处理**: POST请求的参数通过HTTP请求体传递,...

Global site tag (gtag.js) - Google Analytics