前段时间没事把目前JETTY服务器的内容,拷到相应的TOMCAT服务器当时进行测试,功能方便到是没有发现任务问题,但发现解很多传递过程中出现了乱码,因为JETTY当中没有问题,哪么首先就想到了相应的TOMCAT的Eoncoding的设置。
1、对于GET请求
设置编码的一个比较有效的方式是修改Tomcat的server.xml文件:
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
添加URIEncoding="UTF-8"属性,这样就可以将GET请求的request编码格式设置为UTF-8。
2、对于POST请求
设置
request.setCharacterEncoding("UTF-8");
全部搞定!
注意,如果你什么都不设置的话,也就说你使用Tomcat默认的ISO-8895-1编码,那么,可以通过如下方式获得UTF-8编码的中文:
String param=new String(request.getParameter("param-name").getBytes("ISO-8859-1"),"UTF-8");
当然啦,如果页面传过来的中文是使用GBK或者GB2312编码的,那么只需要把上面那行代码的UTF-8换成GBK或者GB2312就行了~
参考网站:
1、Tomcat UTF-8 乱码问题解决办法(非常好!强烈推荐!)
为什么一直拿UTF-8举例子呢?因为网上的前辈们强烈推荐使用UTF-8建站:就是说,全站都使用UTF-8编码!这样可以减少很多繁琐的编码格式转换!
珍爱生命,远离编码格式转换!
相关推荐
在这个例子中,通过设置`URIEncoding`属性为`UTF-8`来指定URL中的参数应该使用UTF-8进行解码。这可以确保当客户端发送带有中文或其他特殊字符的请求时,这些字符能够被正确解析。 **注意事项:** - 如果在`server....
这通常涉及修改服务器的`server.xml` 文件,设置`URIEncoding` 属性,例如:`<Connector URIEncoding="UTF-8" ... />`。 4. **HTTP头设置**: - 在发送请求时,可以通过设置HTTP头来指示字符集。例如,对于GET请求...
解决方法是修改服务器对 uri 参数的默认值 server.xml 中,设置 URIEncoding=“UTF-8”或者逆向转码,先把数据通过 iso8859-1 还原成字节,然后再解码成 UTF-8。 4. post 方法传参乱码 post 方法传参乱码是由于...
总的来说,将Tomcat的`URIEncoding`设置为`UTF-8`是解决大多数中文乱码问题的有效方法,但并不能覆盖所有场景,特别是地址栏直接输入中文的情况。因此,全面理解字符编码和转换过程,以及正确配置服务器和应用,对于...
设置Tomcat的URIEncoding为UTF-8是一个重要的步骤,但并非万能。对于特定的浏览器行为,如IE6的URL编码选项,可能还需要额外的处理。理解字符编码的工作原理和转换机制,是有效解决这类问题的关键。
最常见也是最有效的方法是在Tomcat的配置文件`server.xml`中,找到`Connector`元素,并添加或修改`URIEncoding`属性为`UTF-8`。同时,为了确保URI中的编码也被正确处理,还需要设置`useBodyEncodingForURI`属性为`...
这样配置后,Tomcat在解析URL时将使用UTF-8编码,对于GET请求,中文参数就不会出现乱码。然而,对于POST请求,还需要额外的处理。通常,我们可以使用`request.setCharacterEncoding("UTF-8")`方法在Servlet中设置...
4. 修改Tomcat配置:在Tomcat的server.xml中,可以修改Connector配置,添加`URIEncoding`属性,指定为UTF-8: ```xml <Connector URIEncoding="UTF-8" ... /> ``` 三、注意事项 1. 确保项目中其他地方,如HTML...
为了解决GET请求中的中文乱码问题,可以在Tomcat的`server.xml`配置文件中设置`URIEncoding="UTF-8"`,这样Tomcat在解析URL时会使用UTF-8编码。 3. **POST请求的乱码处理**: POST请求的参数通过HTTP请求体传递,...
通过修改Tomcat的`Server.xml`文件中的`<Connector>`元素,设置`URIEncoding`属性为支持中文的编码(如`GB2312`或`UTF-8`),可以有效解决GET方式传递参数时出现的中文乱码问题。这一修改使得Tomcat能够正确解析和...
- **问题**: POST方式提交的数据通常不会受URIEncoding的影响,但如果没有设置`request.setCharacterEncoding("UTF-8")`,仍可能出现乱码。 - **解决方案**: 在过滤器中设置`request.setCharacterEncoding("UTF-8")`...
为处理中文URL和GET请求,需要在Tomcat的`server.xml`中配置`URIEncoding="UTF-8"`,使Tomcat能正确处理非ASCII字符。 3. **过滤器**:添加一个过滤器来设置请求的字符编码,调用`request.setCharacterEncoding(...
- 这样设置后,无论客户端采用哪种编码方式提交数据,Tomcat都会将其转换为UTF-8编码,从而避免乱码问题。 3. **重启Tomcat服务**: - 修改完配置文件后需要重启Tomcat服务器使更改生效。 #### 四、进一步探讨 ...
这将使得 Tomcat 使用 utf-8 编码来解析 GET 请求的参数。 方法二:重新编码参数 我们也可以对 GET 请求的参数进行重新编码。例如,在 Servlet 中,我们可以使用以下代码: ```java String userName = new String...
1. **修改Tomcat配置**:在`server.xml`文件的`Connector`标签中,设置`useBodyEncodingForURI="true"`,或者直接指定`URIEncoding`属性为具体的编码格式,如`URIEncoding="UTF-8"`。 2. **手动设置`request`编码**...
通过上述配置,可以确保GET请求中的URL参数使用UTF-8编码,从而避免中文乱码问题。 ##### 2.2 使用过滤器进行编码转换 除了修改配置文件外,还可以通过编写自定义过滤器来处理GET请求中的中文编码问题。这种方式...
- 解决方法:在接收页面,通过`request.setCharacterEncoding("UTF-8")`设置请求编码,或者全局使用过滤器确保所有请求的编码为UTF-8。 4. **GET方式传值乱码**: - GET请求的URL参数编码依赖于浏览器的charset和...
GET请求的乱码可以通过设置Servlet容器配置解决,如在Tomcat的`server.xml`中配置`URIEncoding="UTF-8"`。POST请求乱码则需要在Servlet中读取请求参数前设置请求的编码,如`request.setCharacterEncoding("UTF-8")`...
解决GET请求中文乱码问题的一种方法是修改Tomcat服务器的配置文件`server.xml`,设置`URIEncoding`属性为`UTF-8`: ```xml connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> ``` 此外,...