"오늘의 문제를, 내일의 기록으로 남깁니다."

막연한 이론보다, 구체적인 코드가 필요할 때. 직접 겪고 해결한 문제들을 기록합니다. 실무에서 부딪히는 진짜 이슈와, 내가 이해한 방식 그대로 정리한 가이드입니다.

웹개발/실무노트

GET 방식에서 한글 파라미터 깨짐 문제 해결법 (Tomcat URIEncoding 설정)

자바를잡아 2025. 7. 1. 21:46
반응형

GET 방식에서 한글 파라미터 깨짐 문제 해결법 (Tomcat URIEncoding 설정)

JSP나 Spring 환경에서 GET 방식으로 한글을 전송하면 %EB%B0%80...처럼 인코딩된 값이 깨져서 출력되는 경우가 있습니다.
이 문제는 주로 Tomcat의 URIEncoding 설정이 누락

✅ 원인

  • Tomcat 기본 설정은 ISO-8859-1
  • GET 방식은 request.setCharacterEncoding()으로 처리 불가

✅ 해결 방법

1. Tomcat server.xml 설정

<Connector port=\"8080\" protocol=\"HTTP/1.1\"\n           connectionTimeout=\"20000\"\n           redirectPort=\"8443\"\n           URIEncoding=\"UTF-8\" />

URIEncoding=\"UTF-8\" 옵션을 반드시 추가해야 GET 요청이 깨지지 않습니다.

2. nginx 리버스 프록시 사용 시

nginx에서 charset utf-8; 또는 헤더 강제 설정도 필요할 수 있습니다.

📌 확인 테스트

<a href=\"/search.jsp?keyword=자바클래스\">검색</a>

→ 이때 서버 로그에서 ???로 출력된다면 URIEncoding 설정 누락입니다.

✅ 마무리

POST 요청은 request.setCharacterEncoding(\"UTF-8\")으로 해결되지만,
GET 요청은 반드시 Tomcat 설정에서 URIEncoding 옵션을 추가해야 합니다.

🔔 다음 글 예고

[Spring 필터를 활용한 전역 인코딩 처리법]

반응형