프로그래밍/Java
쿠키에 저장한 한글이 깨질 때
김퇴근
2020. 7. 2. 17:49
반응형
keywords: java / web / cookie / spring
오류
회원가입을 구현하면서 Map을 통채로 JSON 문자열로로 바꿔 쿠키에 저장했다. 그런데 꺼내어 보니 한글이 모두 ???
로 나온다. 내 마음이 ???
다.
처음에는 Jackson ObjectMapper 설정에 문제가 있는 줄 알고 프로젝트에서 쓰는 JSONUtil을 건드리다가, 오후 잠을 깨고 한스텝씩 디버깅을 찍어 보니 JSON은 문제가 없었다.
원인
- 점심 많이 먹고 오후에 졸린 내가 문제
- 비영어권에서 태어난 것
- 한글은 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);
반응형