Tomcat在Linux环境下文件名含有汉字的资源报404

帮同事解决了一个小问题,有必要记一下,这次运气好,很快就找到原因并解决了,下次也许没那么好运气,好运气不如烂笔头。

问题很明确,运行在Linux上的Tomcat在提供对含有中文名的静态文件时,报404错误。

上来就可以判定,是编码问题,那就逐层排查编码设置:

  1. 先确认文件名确实是UTF8编码,这个用Python判断就好。
  2. 再确认Tomcat的配置是不是UTF8(这是默认值,一般不会被改动)。
  3. 最后确认环境变量中的locale相关设置。

问题就出在locale环境变量,原先都设置成了"zh_CN.UTF-8",改成"en_US.UTF-8"后重启Tomcat,问题解决。

locale
export LC_ALL="en_US.UTF-8" 
tomcat-dir/bin/shutdown.sh
tomcat-dir/bin/startup.sh

参考链接:

你可能感兴趣的:(tomcat)