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 编码故障的主要内容,如果未能解决你的问题,请参考以下文章

记录一波由会话堵塞导致tomcat应用故障事件

tomcat 服务器故障排除

处理Tomcat日志以及ORA-17401故障(ojdbc)

倍加福编码器绿灯亮红灯闪烁故障

如何对 Tomcat 8 上的连接性能进行故障排除?

排查tomcat服务器启动,项目无法运行故障