-
[JSP] get, post방식 데이터 전송시 한글 깨짐 해결IT/JAVA • SPRING 2019. 10. 23. 12:42
개발을 하다가 초보적인 실수로 한글이 깨져 당황할때가 있다. (나는야 초보개발자)
나중을 위해 한글인코딩 방법을 정리해두도록 한다.
먼저 설정을 통한 인코딩방법이 있다.
1. web.xml 파일에서 인코딩 설정
12345678<filter><filter-name>encodingFilter</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></filter>cs 2. server.xml 파일에서 인코딩 설정
12<Connector connectionTimeout="20000" port="8081"protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>cs 이런식의 설정을 하고 실행시켜도 한글이 깨지는 경우가 있다.
get과 post방식을 통해 데이터를 넘겨줄때 많이 발생하는데, 그때 시도할 방법이 있다.
1. jsp페이지 request.setCharacterEncoding 명시(post방식)
123456789<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><%@page import="java.util.*"%><%request.setCharacterEncoding("UTF-8");%>cs 2. form태그 accept-charset속성1<form method="post" accept-charset="utf-8">cs form 태그를 이용해 데이터를 보내는 경우, accept-charset속성을 이용해 데이터를 인코딩후 보낼 수 있다.3. parameter값 보낼때 직접 인코딩(get방식)12345function testEncoding(id, name){location.href="<c:url value='/test.do' />?id="+id+"&name="+encodeURI(name,"UTF-8");}cs 보내는 파라미터 값을 encodeURI(값,"UTF-8")을 통해 직접 인코딩시켜 보낼 수 있다.
나는 form accept-scharset을 통해 인코딩에 성공할 수 있었다 ! 다른방법들은 왜 안된건지 ㅜ
실제 운영을 할때에는 웬만하면 영어값을 사용하는 것이 좋다고 한다.
SERVER에서는 EUC-KR인데, ORACLE DB는 UTF-8일수도 있기 때문이다.
웬만하면 영어값을 사용하기로 하자!!!!
'IT > JAVA • SPRING' 카테고리의 다른 글
[JAVA] 날짜 불러오기(현재/과거) (0) 2019.11.27 [JSTL] jstl에서의 if문 - <c:if>와 <c:choose> (4) 2019.09.17 [Spring] jsp에서 jsp로 데이터 주고 받기 (3) 2019.09.16 [java] 자바의 맵 클래스(Map/HashMap) (1) 2019.03.05 [java] List(리스트)와 Array(배열)의 특징 (1) 2019.03.05