Tomcat,UTF-8和非bmp字符

时间:2011-09-13 15:03:28

标签: tomcat utf-8 url-encoding astral-plane

我在Tomcat 6.0.32上运行基于GWT的Web应用程序。

我无法获取包含非BMP字符(这些字符存在于文件名中)的网址。任何包含3个字节或更少字符的URL都没有问题。

例如: 文件名是.txt - 当URL编码为UTF-8时,它是%F0%A5%A7%84.txt

http://localhost:8080/foo/bar/%F0%A5%A7%84.txt?param1=x&param2=y无法找到特定视图

但是如果文件名是犬.txt - 当URL编码为UTF-8时,它是%E7%8A%AC.txt -

http://localhost:8080/foo/bar/%E7%8A%AC.txt?param1=x&param2=y视图位置正确。

我在Tomcat中设置了server.xml,以便在Windows XP计算机上使用URIEncoding = UTF-8。

有没有人知道Tomcat 6中有关非BMP字符解码的任何当前限制?

1 个答案:

答案 0 :(得分:1)

几年前有一些工作要解决剩余的编码问题(早在Tomcat 4天内),因此所有当前的Tomcat版本都应正确处理任何UTF-8字符的解码,前提是URIEncoding =“UTF-8”在连接器上设置。

如果没有那么可能的原因(按可能性顺序): - Tomcat配置问题(看起来你有这个排序) - 申请问题 - OS /文件系统配置/问题 - Tomcat bug

如果你确定它是一个Tomcat错误,请报告,有人会看一看。