Tomcat UTF-8 编码故障
Posted
技术标签:
【中文标题】Tomcat UTF-8 编码故障【英文标题】:Tomcat UTF-8 encoding glitch 【发布时间】:2011-09-04 09:49:21 【问题描述】:我在 Tomcat 项目中遇到特殊字符问题。我的所有文件都采用 UTF-8 格式,元数据设置为 UTF-8,当我以任何形式编写 łóęążźć
并通过 POST/GET 方法发送时(我正在使用 jQuery 的 ajax 进行操作),我得到了一些东西更像:[|zB�D
。
我该如何解决?我很确定这是因为 Tomcat(我使用的是 6.0 版本)。
【问题讨论】:
可能重复:Problems while submitting a UTF-8 form textarea with JQuery/AJAX encoding problem in servlet 和 Why does POST not honor charset 的可能重复 Tomcat 已经有过滤器,在 conf/web.xml 文件中将字符编码设置为 UTF-8。您应该取消注释setCharacterEncodingFilter
的过滤器定义和过滤器映射标签
【参考方案1】:
请注意,jquery 的 ajax() 函数将始终使用 UTF-8 编码传输数据。
在 Tomcat 中,最好将连接器的 uRIEncoding
选项设置为 UTF-8
(在 server.xml 中)。这主要用于 URL 的编码,但它似乎也会影响与 POST 请求(url 编码)一起使用的编码:
<Connector
port="8080"
redirectPort="8443"
uRIEncoding="UTF-8"
maxThreads="100">
【讨论】:
谢谢 - 为我修好了。以上是关于Tomcat UTF-8 编码故障的主要内容,如果未能解决你的问题,请参考以下文章