1. 程式人生 > 程式設計 >java下載url路徑包含中文需要轉義的操作

java下載url路徑包含中文需要轉義的操作

大家看這個url:

http://127.0.0.1:9997/file/江蘇省地震應急預案(二級).docx

應為url路徑中有中文沒有轉義,輸入流報錯

The valid characters are defined in RFC 7230 and RFC 398

下面我們對中文路徑進行擷取轉義

  int lastIndexOf = downloadUrl.lastIndexOf('/');
    String fileName = downloadUrl.substring(lastIndexOf + 1);
    // 轉義關鍵程式碼
    String newFileName = URLEncoder.encode(fileName,"utf-8");
    String subUrl = downloadUrl.substring(0,lastIndexOf + 1);
    String newUrl = subUrl + newFileName;

    URL url = new URL(newUrl);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

補充知識:Java中URL傳遞中文字元成亂碼,及引數轉義符轉換

頁面使用此函式

function URLencode(sStr) 
  {
   return escape(sStr).
        replace(/\+/g,'%2B').
         replace(/\"/g,'%22').
           replace(/\'/g,'%27').
            replace(/\//g,'%2F');
  }

處理一下url 要傳的引數,這樣就可以傳到後臺想要的特殊字元了

以上這篇java下載url路徑包含中文需要轉義的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。