Rog*_*ger 5 tomcat http character-encoding
我在使用Web应用程序的字符编码时遇到问题.弹出窗口使用用户输入查询数据库(按名称搜索人员).问题是重音字符被转换成奇怪的字母,如ó => ó.这是一个非常标准的问题,但我无法弄清楚发生了什么.
我做了什么?
主要是遵循这个.
(request&response).setCharacterEncoding("UTF-8");web.xml,server.xml字符编码参数<?xml version='1.0' encoding='utf-8'?>.text/html; utf-8获取帖子(主要是那些有问题的帖子)但我仍然有同样的问题,虽然有些问题已经解决,例如,从服务器发送到客户端的一些重音字母正在正确显示.
我安装了apache2.2和tomcat 6.
我不知道还能做什么,也不知道我在这里发布什么相关信息(如果你需要的话请告诉我)...
提前致谢.
确保编码也在数据库和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,您可以通过" 窗口">"属性">"常规">"工作空间">"文本文件编码"来控制它.
在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.
对我来说,这解决了这个问题.