字符编码问题的tomcat(Character encoding problems with tom

2019-06-26 04:26发布

我在与字符编码为Web应用程序的麻烦。 还有就是queryes用户输入数据库(按姓名搜索人)弹出。 的问题是,重音字符正在转化为怪异字母等ó => ó 。 这是一个非常标准的问题,但我无法弄清楚到底是怎么回事。

我做了什么?

主要是,遵循此 。

  • 在第一过滤器上的Tomcat我的设置(request&response).setCharacterEncoding("UTF-8");
  • 设置每web.xmlserver.xml的字符encodign参数<?xml version='1.0' encoding='utf-8'?>
  • 在连接器改变的URIEncoding为UTF-8。 使用萤火虫,我已经看到,内容类型设置为text/html; utf-8 text/html; utf-8的get职位(其中主要是有问题的的那些)
  • 变化对JSP的元类型和@page为UTF-8。

但我仍然有同样的问题,虽然有些已经解决,例如,从服务器向客户端发送一些重音字母,能正确显示。

我有APACHE2.2和Tomcat 6安装。

我不知道自己还能做什么我也不应该张贴的内容相关的信息在这里(如果你需要的东西,请告诉我)...

提前致谢。

Answer 1:

确保编码是在数据库和JDBC驱动程序级也定好了。 如何做到这一点取决于数据库和JDBC驱动程序化妆/版本。 详细信息请参考DB和JDBC驱动程序的具体文件。 对于MySQL JDBC驱动程序,例如,你需要两个特定的参数添加到JDBC连接URL。

顺便说一句,设置XML文件编码和meta标签对HTTP请求/响应的编码没有影响。 只有以下应最小配置为JSP / Servlet的Web应用程序:

  • 对于HTTP GET请求,在服务器级别配置。 在Tomcat中,这是通过设置来完成URIEncoding的属性<Connector> Tomcat的server.xml

  • 对于HTTP POST请求,使用一个过滤器,其做了ServletRequest#setCharacterEncoding()

  • 对于由JSP中生成HTTP响应,设定pageEncoding的属性<%@page%>在每个JSP的基础上,或者,设置更好<page-encoding>在条目web.xml针对应用范围的基础。

  • 对于由小服务程序生成的(其中没有JSP被卷入!)HTTP响应使用ServletResponse#setCharacterEncoding()

  • 最后但并非最不重要的,请确保您的源代码文件也被保存为UTF-8。 确切的配置取决于所使用的编辑器。 在Eclipse的情况下,可以通过窗口>属性>常规>工作空间>文本文件编码控制它。

也可以看看:

  • Unicode的-如何让人物吧?


Answer 2:

在为Debian用户的java选项

/etc/default/tomcat7

我把这个

set JAVA_OPTS=-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8

然后所有编码似乎遇到为UTF-8在默认情况下..

对我来说,这解决了这个问题。



Answer 3:

对我来说Finaly helfull是这篇文章

我的总结:

添加“的URIEncoding =” UTF-8"属性到你的连接器在server.xml中。类似,

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" URIEncoding="UTF-8"/>

然后添加服务器端过滤器的字符编码。 在与弹簧的Tomcat的情况下以下行添加到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>
</filter>
<filter-mapping>
    <filter-name>charsetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


文章来源: Character encoding problems with tomcat