안녕하세요.
고코더 입니다.
JSP에서 인코딩을 설정할 때 contentType, pageEncoding를 동시에 설정합니다. 보통은 UTF-8로 소스코드처럼 최상 단위에 놓게 됩니다. 그런데 이 두 개의 차이점을 궁금해하는 분이 있어서 두 개의 차이점을 다뤄보도록 하겠습니다.
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
contentType
해당 속성은 브라우저가 즉 HTTP가 해당 주소를 받아올 때 페이지의 인코딩을 의미합니다. 다시 말하면 의미 HTTP의 헤더에 그대로 이 내용이 들어가게 됩니다. charset을 통해 페이지를 요청하는 것이며, 웹서버에서 응답하여 클라이언트가 페이지를 받았을 때의 인코딩 방식입니다.
좀 더 쉽게 말하면 "브라우저가 받아볼 인코딩 형식"입니다.
pageEncoding
JSP 파일 자체의 인코딩 방식을 뜻합니다. 해당 문서의 캐릭터 셋입니다. 이 파일은 UTF-8로 되어 있는 페이지라는 것을 말합니다. 흔히 우리가 생각하는 인코딩 설정이 이것에 해당합니다.
contentType, pageEncoding 다른 인코딩으로 해도 될까?
물론 자신의 프로젝트에 필요에 따라 사용이 가능합니다. euc-kr로 작성된 파일을 브라우저에서는 utf-8로 받게 할 수도 있습니다. 하지만 특별한 조건이 아닌 이상, 본 적이 없네요.
그냥 둘이 짝지어서 하나의 인코딩으로 사용합시다!
댓글