[질문] JSP에서 encoding, characterset의 의미?
들찬
질문이 3개입니다. ^^;
어떤 jsp 파일의 헤더 부분을 다음과 같이 코딩했다고 치죠. 질문을 위해서 일부러 characterset을 모두 다르게 했습니다.
01: %@ page language=java contentType=text/html; charset=euc-kr pageEncoding=utf-8%
02: html
03: head
04: meta http-equiv=Content-Type content=text/html; charset=iso-8859-1
05: titleInsert title here/title
06: /head
a. 여기서 1번줄에서 pageEncoding=utf-8이부분은 jsp 엔진에게 이 jsp파일을 서블릿 클래스 파일로 변환할때 utf-8 인코딩을 적용해서 변환하라는 뜻으로이해하고 있습니다. 그러면 영문같은 경우는 아무 영향을 안받지만 한글의 경우 utf-8 로 변환된 일련의 데이터가서블릿 클래스 파일 안에 기록될겁니다... 이게 맞나요?
b. 그리고 4번째 줄은 브라우저에게 유효한 코드로 이해하고 있습니다. 그러니까 이문서는 iso-8859-1 문자셋으로 해석하면 된다는 뜻이고 브라우저로 하여금 서버가 전송해준 응답 데이터를 iso-8859-1 문자인코딩을 적용해서알맞은 문자를 보여주게 한다....이렇게 이해하는게 맞는건가요?
c.마지막으로 첫번째줄에 contentType=text/html; charset=euc-kr 이 부분은 어떤 의미를 갖고 있는지 모르겠네요... -_-;; 이 부분이html 문서를 클라이언트에게 전송할때헤더에 포함되는 내용인가요? 그러면 b 에서 질문한 메타태그와 같은 의미를 갖는게 아닌가 싶은데 왜 똑같은 말을 두 번 하는건지...
정리하면 위 세가지 코드가 어느쪽(서버/클라이언트브라우저)에 적용되어서 어떤 동작을 의미하는지 무지 헷갈리는 중.. -_-;
누가 정리 좀 해주시면 정말 감사.... ^^;;
-
늘솔길
jsp를 잘 몰라서 하는 말인데요.. http 해더에서는 htf8로 보낸다구 해놓구 실제 hmtl은 iso-8859-1로 보내기때문에 브라우저에서 한글이나 기타 어떤 다른 문자 셋이 깨지는 현상이 발생할것 같습니다.
제 생각엔 -jsp에 대해 무지합니다.- 위에 지정한 utf8은 http해더에 포함되서 보내지는것 같은데요... -
미영
마지막 줄이라고 하신게 어디있는지?;; 있다면 b와 중복되는것 같네요; 필요없는듯~
클라이언트(브라우저)에는 맨 첫줄 빼고 모두 전달이 되니까요~