Tomcat在Linux環境下文件名含有漢字的資源報404

幫同事解決了一個小問題,有必要記一下,此次運氣好,很快就找到緣由並解決了,下次也許沒那麼好運氣,好運氣不如爛筆頭。java

問題很明確,運行在Linux上的Tomcat在提供對含有中文名的靜態文件時,報404錯誤。tomcat

上來就能夠斷定,是編碼問題,那就逐層排查編碼設置:jvm

  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

參考連接:code

相關文章
相關標籤/搜索