본문 바로가기

프로그래밍/Java

쿠키에 저장한 한글이 깨질 때

반응형

keywords: java / web / cookie / spring

오류

회원가입을 구현하면서 Map을 통채로 JSON 문자열로로 바꿔 쿠키에 저장했다. 그런데 꺼내어 보니 한글이 모두 ???로 나온다. 내 마음이 ???다.

처음에는 Jackson ObjectMapper 설정에 문제가 있는 줄 알고 프로젝트에서 쓰는 JSONUtil을 건드리다가, 오후 잠을 깨고 한스텝씩 디버깅을 찍어 보니 JSON은 문제가 없었다.

원인

  1. 점심 많이 먹고 오후에 졸린 내가 문제
  2. 비영어권에서 태어난 것
  3. 한글은 URL Encoding 해서 저장해야 함.

해결

  • 저장할 때는 URLEncoder.encode(...)
  • 꺼낼 때는 URLDecoder.decode(...)

코드 참고. CookieUtils는 임의로 쓴 것이니 프로젝트에 맞게 알아서 쓰면 된다.

// 저장
String encValue = URLEncoder.encode(value);
CookieUtils.setCookie("test", encValue);

// 꺼낼때
String cookieValue = CookieUtils.getCookie("test");
String decValue = URLDecoder.decode(cookieValue);
반응형

개발자가 그리는 인스타툰 팔로우하세요!