검색바에 기록 로그를 쿠키를 이용하여 남기는 과정에서 개발서버에서 에러가 발생했다.
로그는 확인을 못했으나 한글로 검색한 경우 에러가 나고 영어로 검색한 경우에는 멀쩡했으므로 한글이 깨져서 나는 오류임을 직감할 수 있었다.
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에러를 주던 문제를 해결 할 수 있었다.