帮同事解决了一个小问题,有必要记一下,这次运气好,很快就找到原因并解决了,下次也许没那么好运气,好运气不如烂笔头。
问题很明确,运行在Linux上的Tomcat在提供对含有中文名的静态文件时,报404错误。
上来就可以判定,是编码问题,那就逐层排查编码设置:
- 先确认文件名确实是UTF8编码,这个用Python判断就好。
- 再确认Tomcat的配置是不是UTF8(这是默认值,一般不会被改动)。
- 最后确认环境变量中的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
参考链接: