- 에러현상
jsp페이지에서 ajax를 사용, data에 변수를 controller로 보냈는데 controller에서부터 한글이 깨짐
막 특수문자로 길게나옴
- 내가 해본 해결법
1. jsp 최상단에 인코딩추가
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
2. var변수 escape로 감싸기
var str = escape($("#testcode"));
3. 서버에있는 server.xml에 URIEncoding="UTF-8"추가후 tomcat clean, 프로젝트 clean후 재기동
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
4. ajax코드에 contentType 추가
contentType: "application/x-www-form-urlencoded; charset=UTF-8"
5. web.xml에 인코딩필터추가
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 최종해결
위의 방법들은 구글링해서 찾아보고 다 따라해봤는데 안돼서
컨트롤러로 넘어온 값을 디코딩 하기로 해봄
String name = URLDecoder.decode(넘어온변수, "UTF-8);
했더니 한글로 잘 나옴! URLDecoder패키지는 java.net.URLDecoder로 해야함
이걸로 2시간..
'개발' 카테고리의 다른 글
GCP(구글 클라우드 플랫폼) 서버 구성하기 (0) | 2019.02.20 |
---|---|
아톰에디터(atom editor) 패키지 activate-power-mode (0) | 2017.09.08 |
node.js + socket.io 간단한 멀티채팅 (0) | 2017.07.21 |
Expected one result (or null) to be returned by (1) | 2017.05.15 |
[아톰에디터] 나만의 단축키 설정 방법 (0) | 2016.12.19 |