tomcat的字符编码问题

Rog*_*ger 5 tomcat http character-encoding

我在使用Web应用程序的字符编码时遇到问题.弹出窗口使用用户输入查询数据库(按名称搜索人员).问题是重音字符被转换成奇怪的字母,如ó => ó.这是一个非常标准的问题,但我无法弄清楚发生了什么.

我做了什么?

主要是遵循这个.

  • 在我的tomcat上设置第一个过滤器 (request&response).setCharacterEncoding("UTF-8");
  • 设置每个web.xml,server.xml字符编码参数<?xml version='1.0' encoding='utf-8'?>.
  • 在连接器中将URIEncoding更改为UTF-8.使用firebug,我已经看到内容类型设置为text/html; utf-8获取帖子(主要是那些有问题的帖子)
  • 将元类型和@psp上的@page更改为UTF-8.

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

我安装了apache2.2和tomcat 6.

我不知道还能做什么,也不知道我在这里发布什么相关信息(如果你需要的话请告诉我)...

提前致谢.

Bal*_*usC 9

确保编码也在数据库和JDBC驱动程序级别设置.如何做到这一点取决于DB和JDBC驱动程序make/version.有关详细信息,请参阅DB和JDBC驱动程序特定文档.例如,对于MySQL JDBC驱动程序,您需要向JDBC连接URL添加两个特定参数.

顺便说一下,设置XML文件编码和元标记对HTTP请求/响应编码没有影响.对于基于JSP/Servlet的Web应用程序,只应最低限度地配置以下内容:

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

  • 对于HTTP POST请求,请使用执行a的过滤器ServletRequest#setCharacterEncoding().

  • 对于JSP生成的HTTP响应pageEncoding,请<%@page%>基于每个JSP 设置属性,或者更好地为应用程序范围设置<page-encoding>条目web.xml.

  • 对于servlet生成的HTTP响应(其中没有涉及JSP!)使用ServletResponse#setCharacterEncoding().

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

也可以看看:


And*_*hia 5

在debian用户的java选项中

/etc/default/tomcat7
Run Code Online (Sandbox Code Playgroud)

我把它

set JAVA_OPTS=-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

然后默认情况下所有编码似乎都是UTF-8.

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