1. 程式人生 > >記關於超連結進行中文名稱檔案下載報錯問題

記關於超連結進行中文名稱檔案下載報錯問題

超連結進行中文名稱的檔案下載, 客戶環境出問題了. 我電腦本地是可以的.

<a class="btn btn-link" href="${basePath }a/file/模板檔案.xlsx">下載模板</a>

排查了檔案是否存在和檔名稱問題. 最後查詢客戶的伺服器中tomcat 的 server.xml 檔案的編碼沒有設定UTF-8.

那麼在請求時會直接把中文解析成了16位的漢字內碼.那麼就匹配不到檔案了.(當時排查是放了一個英文名稱的檔案到靜態目錄,直接訪問可以下載)

http://localhost:8888/a/file/%E6%94%AF%E4%BB%98%E6%B8%85%E5%8D%95%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true"/>

在該節點上設定如下:

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true"
			    URIEncoding="UTF-8"/>

請求一般有兩個地方會容易出現中文亂碼問題. 1.請問url.  2.請求的引數.

以下部落格有較詳細講解對應這個兩個問題的設定

https://blog.csdn.net/a285981079/article/details/49928399