記關於超連結進行中文名稱檔案下載報錯問題
阿新 • • 發佈:2019-01-03
超連結進行中文名稱的檔案下載, 客戶環境出問題了. 我電腦本地是可以的.
<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.請求的引數.
以下部落格有較詳細講解對應這個兩個問題的設定