※ 이는 JSP내에서의 한글깨짐 해결방안입니다.
자바에서의 인코딩은 따로 잡아주셔야합니다.
1) web.xml 에서 작성
POST 방식으로 데이터를 전달할 때 charset 때문에 문제가 되는 경우에는
setCharacterEncodingFilter 필터를 이용해서 전달하면 한글변환 없이 사용할 수 있습니다.
전역에서 쓰실 분은 이클립스기준으로
Server안에 있는 web.xml안에, 프로젝트만에서만 쓰신다면
해당 프로젝트안의 WEB-INF안에 web.xml안에 넣으시면됩니다.
스프링이 아닌경우
<!--web.xml에 넣으면 된다.-->
<!--web.xml의 filter설정-->
<filter>
<filter-name>Set Character Encoding</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>
</filter>
<!--filter에 대한 url매핑 설정-->
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
스프링 프로젝트인 경우
<filter>
<filter-name>encodingFilter</filter-name>
<!--스프링주소-->
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<!--utf-8-->
<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>
2) JSP파일 상단에서 작성
해당 JSP파일의 상단에 작성하시면 됩니다.
<%@ page contentType="text/html; charset=utf-8" %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3) 톰캣 서버의 설정으로 들어가서 설정
Tomcat의 서버를 설정했다면 Servers하단의 server.xml안에 들어가보면 대략 64번째 줄인가에
아래와 같은 코드가 있는데 이중 URIEncoding="utf-8"을 더 넣으면 된다.
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
이 중 하나만 해서 안된다면 다 하시는 걸 추천드린다. 그럼 모든 한글 깨짐이 잡히게된다.
'Coding story > Error Error Error' 카테고리의 다른 글
(Error) Control character in cookie value or attribute. (0) | 2022.01.22 |
---|---|
<a>태그와 confirm함수 같이 사용하고싶다....어쩌냐 (0) | 2022.01.20 |
최근댓글