웹에서의 한글처리 방법과 인코딩을 공부중인 신입입니다. 한글처리 관련 삽질을 하다보니 한번 정리해야 할 것같아서 문서로 남깁니다.. 제가 착각하고 있는 부분이나 틀린부분 지적해 주시면 감사하겠습니다 :)


<%@ page language="java" contentType="text/html; charset=EUC-KR" 
    pageEncoding="EUC-KR" %> 


charset -> jsp 페이지 출력 시 사용할 문자코드

pageEncoding -> jsp 파일 작성 시 사용할 문자코드


자바 가상머신(JVM) 내부에서는 모든 문자열이 unicode로 처리된다. 따라서 서블릿 컨테이너는 jsp을 jvm으로 읽어들일 때 

pageEncoding설정한 문자코드에서 unicode로 변환한다.

그리고 웹 브라우저에 html문서를 출력할 때는 unicode에서 charset에 설정한 문자코드로 변환하여 출력한다.

contentType에 설정한 값을 통하여 브라우저에게 문자코드 정보를 전달한다.


인코딩과 디코딩이란?

인코딩은 문자를 숫자로 매핑하는 방법이고 , 디코딩은 매핑된 숫자를 문자로 매핑하는 방법이다.


request.setCharacterEncoding()

요청 파라미터의 캐릭터 인코딩을 설정(jsp -> servlet)


response.setCharacterEncoding()

요청 받는 파라미터의 캐릭터 인코딩을 설정.(servlet -> jsp)


--> 해당 서블릿마다 위와같은 처리를 하는 것은 매우 번거로운 일임. 게다가 문자코드를 변경할 일이 생기면 모든 서블릿을 변경해야하는 큰 일이 생겨버림.. 그래서 filter를 사용하여 일괄적인 문자코드 관리가 가능함.



Get방식의 한글처리

-> tomcat의 web.xml 의 uridecoding 설정을 변경 utf-8 한다.


 


'웹 개발' 카테고리의 다른 글

jsonp  (0) 2017.02.09
OAuth 2.0 ( RFC 6749)  (0) 2017.01.19
Apache 와 Tomcat  (0) 2016.07.26
동일출처정책(same origin policy)  (0) 2016.07.26
http와 https  (0) 2016.07.26

+ Recent posts