반응형
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);
반응형
'프로그래밍 > Java' 카테고리의 다른 글
jQuery ajax - REST API 호출 시 HTTP 200에서 에러나는 경우 (HTTP 204) (0) | 2020.07.08 |
---|---|
JSP contentType charset=UTF-8 전역 설정 방법 (JSP 한글 깨짐 혹은 물음표 ??? 오류) (0) | 2020.07.05 |
맥/MacOS - CannotGetJdbcConnectionException 로케일을 인식할 수 없습니다 (0) | 2020.07.01 |
List<?>를 사이즈별 List<List<?>> 로 나누기 (Lists.partition) (0) | 2020.05.11 |
Java try-with-resources (0) | 2019.08.21 |