javascrip Cookie 한글 사용시 에러 해결

kmw0422·2019년 11월 1일
0

초보개발일기

목록 보기
1/1

검색바에 기록 로그를 쿠키를 이용하여 남기는 과정에서 개발서버에서 에러가 발생했다.

로그는 확인을 못했으나 한글로 검색한 경우 에러가 나고 영어로 검색한 경우에는 멀쩡했으므로 한글이 깨져서 나는 오류임을 직감할 수 있었다.

var tempArr = new Array();
	
    var ca = unescape(document.cookie).split(';');
	//쿠키에 저장된 값중 search의 키값만 배열에 담기
	for(var i = 0; i < ca.length; i++){
		if(ca[i].indexOf("search") >= 0){
			if(ca[i].substring(ca[i].indexOf("=")+1) != "${param.p_unified_srch_text }" && ca[i].substring(ca[i].indexOf("=")+1) != ""){
				tempArr.push(ca[i].substring(ca[i].indexOf("=")+1));
			}
		}
	}
    
var willCookie = "";
	
	for(var i = 0; i < tempArr.length; i++){
		cookie = "search"+ i + "=" + escape(tempArr[i]) + ";";
		// 쿠키를 집어넣는다.
		document.cookie = cookie;
	}    
    

쿠키를 저장하기 전에 escape();로 한글이 들어갈 값을 변환
쿠키를 가져올 때는 반대로 unescape();를 사용하여 다시 한글로 변환

이 과정을 추가하는 것만으로 간단히 한글 쿠키로 인해 사이트가 500에러를 주던 문제를 해결 할 수 있었다.

profile
초초초보 개발자

0개의 댓글