1. 程式人生 > >下載時檔名亂碼的問題(FireFox)

下載時檔名亂碼的問題(FireFox)

這個問題引發自標準相容問題,火狐對標準比較嚴格,而其他瀏覽器則選擇相容,所以連IE都沒有問題的寫法在火狐下就爆炸了
為響應報文response添加個頭資訊Content-Disposition就好了

直接新增以下程式碼就可以解決問題了,沒必要做太多判斷

String filename = java.net.URLEncoder.encode(file.getName(), "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + filename);

重點在filename*=utf-8'zh_cn'

,然後後面直接加檔名
程式碼在以下瀏覽器測試通過:

  • Chrome 63.0.3239.132(正式版本) (64 位)
  • 搜狗高速瀏覽器 7.5.5.26904
  • FireFox ESR 52.5.3 (32 位)