Java

GET 한글깨짐 방지

skydev 2019. 6. 27. 14:35
public void setSearchWord(String searchWord) throws UnsupportedEncodingException {
    if (StringUtil.isEmpty(searchWord) == false && URLEncoder.encode(URLDecoder.decode(searchWord, "UTF-8"), "UTF-8").equals(searchWord) ) {
        this.searchWord = URLDecoder.decode(searchWord, "UTF-8");
    } else {
        this.searchWord = searchWord;
    }
}

문제상황
1. Front단에서 ajax GET 방식으로 보낼때 $.param(params, true)로 처리
2. 인코딩 되었는지 판단하지 않고 디코딩하면 전화번호 같은 숫자도 %ED%82%A4 형식으로 처리된다.

js encodeURIComponent vs encodeURI
encodeURI 는 URI 전체 인코딩 할때 
URI 의 파라미터 인코딩 할때는 encodeURIComponent 

참조:http://blog.kazikai.net/?p=194