utf-8网址问题

Thi*_*man 2 url tomcat utf-8

我有一个tomcat(7)服务器正在运行,我通过它尝试通过http访问一些公共文件.文件系统上的一些文件中包含特殊字符.找到没有这些特殊字符的那些.其他的给出404.例如:

http:// localhost:9090 /已处理/已转码 /Csángó_TÖMEGKERESZTELŐVEL_EGYBEKÖTÖTT_búcsú_Istensegítsfalvá20111053491309424029417_extracted.mp3"

从我发现的网址中的utf-8应该不是问题.我在文件名上尝试了一个url转义函数,结果是:

HTTP://本地主机:9090 /处理/代码转换/ CS%C3%a1ng%C3%B3_T%C3%96MEGKERESZTEL%C5%90VEL_EGYBEK%C3%96T%C3%96TT_b%C3%BACS%C3%ba_Istenseg%C3%adtsfalv% C3%a120111053491309424029417_extracted%2emp3

......但这似乎也没有解决任何问题.接下来要尝试什么?我不知道问题是什么.它可能与Tomcat设置有关吗?

min*_*das 6

你有URIEncoding="UTF-8"你的<Connector?如果是的话,这就是我要做的:

  1. 创建一个测试webapp,其中有一个过滤器拦截所有调用 /processed/transcoded/*
  2. 在该过滤器上放置一个断点,看看你得到了什么.解码后文件名是否有意义?
  3. 尝试java.io.File使用此路径打开一个新的(显然在前置本地位置,例如/home/someuser/files/...并假设文件在那里).

我不认为tomcat比上面列出的更多.

另一种选择是调试Tomcat本身.