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

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

웹개발/실무노트

JSP에서 POST 요청 한글 깨짐 해결법 (인코딩 설정 정리)

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

JSP에서 POST 요청 한글 깨짐 해결법 (인코딩 설정 정리)

JSP 기반 시스템에서 POST 요청 시 한글이 깨지는 현상은 흔하게 발생합니다.
이 문제는 request 인코딩 설정 누락이 원인인 경우가 많습니다.
이번 글에서는 POST 방식에서의 한글 깨짐 원인과 그 해결법을 정리해봅니다.

✅ 원인: request.setCharacterEncoding 미설정

JSP는 기본적으로 ISO-8859-1로 요청을 인코딩 처리하기 때문에,
POST 방식에서 한글이 물음표(???)나 깨진 문자로 보일 수 있습니다.

✅ 해결법

1. JSP 상단에 인코딩 지정

<%@ page contentType="text/html; charset=UTF-8" %>
<% request.setCharacterEncoding("UTF-8"); %>

2. web.xml에 전역 설정 (권장)

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

📌 주의사항

  • GET 방식은 server.xml의 URIEncoding 설정 필요
  • Tomcat 버전에 따라 request.setCharacterEncoding이 적용 안될 수 있으니 Filter로 처리 권장

🔚 마무리

POST 요청의 한글 깨짐은 대부분 request.setCharacterEncoding("UTF-8") 누락입니다.
특히 웹 애플리케이션 전체에 영향을 줄 수 있으므로 web.xml에서 전역 설정하는 것이 가장 깔끔합니다.

🔔 다음 글 예고

[GET 방식에서 한글 파라미터 깨짐 해결법]

반응형