1. 程式人生 > >url中關於編解碼加號和空格的問題

url中關於編解碼加號和空格的問題

今天遇到一個問題,URL中的加號傳到後臺之後變成了空格

BNn+Y6xKvmejeJmu9sS2OnRJwYhHtYXScG2ol17EUhg1oeSFE5btrT4Eh04QiwIf變成了BNn Y6xKvmejeJmu9sS2OnRJwYhHtYXScG2ol17EUhg1oeSFE5btrT4Eh04QiwIf

原因:URL中的+號,通過 GET方式傳值的時候,+號會被瀏覽器處理為空,需要轉換為%2B

解決方法:

一.使用URLEncoder.encode進行編碼

注:我在後臺用URLDecoder.decode進行解碼之後發現+號依然是空格,原因是我在前臺編碼了一次,但是在伺服器被URLDecoder.decode解碼了兩次,應用伺服器一次(jetty、tomcat)、後臺一次,導致加號會變為空格。解決的辦法:1.做兩次編碼
URLEncoder.encode(URLEncoder.encode(token, "UTF-8"), "UTF-8"),一次應用伺服器去解碼,一次後臺取解碼。2.後臺不解碼

二.使用.replace(/\+/g,'%2B')