1. 程式人生 > >URLEncoder.encode轉譯後“空格”變“加號”的問題

URLEncoder.encode轉譯後“空格”變“加號”的問題

URLEncoder.encode轉譯後“空格”變“加號”的問題

例如:
String test = “++ ++ ++”;
test = URLEncoder.encode(test);
對字串test進行編碼,但是發現空格全部都變成了加號
test = URLEncoder.encode(test);
test = test.replaceAll("\+", “%20”); //處理空格

遇到的問題: 用URLEncoder.encode方法會把空格變成加號(+)在前臺頁面顯示的時候會多出加號。比如:

  1. 當上傳檔案的檔名中間有空格,檔名為 “新建 文字文件.txt” ,從後臺返回值解碼後卻變成了“新建+文字文件.txt”;
  2. http請求,用URLEncoder.encode加密responseBody,空格變+。

解決方法: 在值傳回前臺時先把變數中的加號(+)全部替換為“%20”。str.replace("+","%20")或str.replaceAll("\+", “%20”)