java.net.URLEncoder.encode()로 인코딩된 문자열을 java.net.URLDecoder.decode()로 디코딩할 때 + 기호가 space(공백)으로 되어버리는 현상에 대한 해결책

By | 12월 4, 2012

* 이 현상은 get 방식으로 보내는 파라미터의 내용중에 +기호가 있을 경우에 발생하는데,
  보통은 + 를 파라미터로 실어 보내는 일이 없지만, Base64로 인코딩된 문자열(ex: 암호화된 id)에는
  +가 있을 경우가 종종 있기 때문에 이런 얘들을 get으로 실어 보낼 때 심심치 않게 볼 수 있다.

  그래서 해결책을 이것저것 찾아보았지만 결국은 space를 +로 replace하는 것이 대세인 듯 하다.
  (아래 예제에서 decodeString()은 그냥 URLDecoder.decode()를 랩핑한 메서드이다.)

 useridaliasEnc = decodeString(useridaliasEnc).replaceAll(" ", "+");

* 참고링크

   - 
http://stackoverflow.com/questions/123994/querystring-malformed-after-urldecode 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments