JAVA URL copyURLToFile下載檔案中文名處理
阿新 • • 發佈:2018-12-14
做了一個從URL下載檔案的功能 剛開始用沒問題 後來發現中文名有問題
原先程式碼:
String url="http://xxxxcom/userfiles/file/20181010//5596d00cfa759abf48a88dde17b9d07d/文件中心資料建模.mwb"
URL httpUrl = new URL(url);
String fileName= httpUrl.getFile();
FileUtils.copyURLToFile(httpUrl, new File(savePath + fileName));
//上面的中文名是不行 當然這裡如果前端傳過來的可以encodeURI編碼一下 //後臺我們編碼這樣整個的檔案 new String(str,“utf-8”)
://
等也會處理
修改後
URL httpUrl = new URL(UriUtils.encodePath(url, "UTF-8"));
String fileName= httpUrl.getFile();
FileUtils.copyURLToFile(httpUrl, new File(savePath + fileName));
UriUtils.encodePath(url, “UTF-8”)) //這裡引用的spring包下的工具類只會對我們的文件中心資料建模進行編碼處理所以變成這樣樣子
http://xxxxcom/userfiles/file/20181010//5596d00cfa759abf48a88dde17b9d07d/%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83%E6%95%B0%E6%8D%AE%E5%BB%BA%E6%A8%A1.mwb%20
不是什麼毛病 自己處理可能要根據規則處理一下 這裡直接有現成的用起來比較方便 有遇到的可以這樣用了