본문 바로가기
C++ 200제/코딩 IT 정보

HTML UTF-8 인코딩, 방법과 의도, charset=TUF-8 메타태그 추가

by vicddory 2017. 1. 23.

HTML UTF-8 인코딩, 방법과 의도, charset=TUF-8 메타태그 추가


HTML UTF-8 인코딩 의도

기본적 ASCII를 제외한 컨텐츠를 사용하는 페이지는 플랫폼 간의 디스플레이 문제가 생길 수 있다. 윈도우의 인코딩은 맥에서 제대로 해석되지 않고 그 반대도 마찬가지다. (HTML UTF-8 인코딩 필요성) 웹 브라우저가 해당 페이지의 인코딩을 추측해 실행하긴 하지만 틀리는 경우가 많다.


HTML UTF-8은 모든 웹 브라우저에서 제대로 작동하는 표준 인코딩이고 대부분의 텍스트 편집기와 기타 툴에서도 지원한다. HTML UTF-8 인코딩은 상당히 빠르고, 가볍고, 효율적인 인코딩이다. 또 모든 유니코드 문자를 지원하기 때문에 페이지의 국제화 또는 로컬화 작업을 하기에도 적합하다.


발생 가능한 문제점

이 인코딩을 제대로 적용하려면 웹 서버의 HTTP 응답 (response) 헤더를 다룰 수 있어야 한다. 이것은 공유 호스팅 환경에서는 문제가 될 수 있다. 안 좋은 툴들은 HTML UTF-8을 인식하지 못하기도 한다.

HTML UTF-8 인코딩 방법

두 단계가 필요하다. 먼저 모든 컨텐츠를 UTF-8로 다시 인코딩한다. 다음으로 클라이언트에게 인코딩 방법이 바뀐 사실을 알려야 한다. 어떤 인코딩을 변환할 것인지 알기만 하면 리인코딩(reencoding)은 상당히 직관적이다.


GNU recode, BBEdit, jEdit 등의 커맨드라인 툴이나 기타 프로그램들도 지정하기만 하면 HTML UTF-8로 컨텐츠를 저장해준다. 원하는 편집기가 UTF-8을 디폴트로 지정하도록 설정하자. 다음은 컨텐츠가 UTF-8로 돼 있다고 브라우저에 알려주는 단계이다.


HTML 바이트 오더 UTF8[HTML encoding euc-kr 한글 깨짐]


이 단계는 다시 세 부분으로 나뉜다.


- 바이트 오더 마크(byte order mark)를 추가한다.

- 메타태그(meta tag)를 추가한다.

- 컨첸트 타입 헤더(contents type header)를 지정해준다.


바이트 오더 마크는 유니코드 문자 0xFEFF, '너비가 0인 공백'이다. 바이트 오더 마크가 문서의 첫 번째 문자라면, 브라우저는 이를 인지하고 나머지 내용을 모두 HTML UTF-8로 생각해야 한다.


필수사항은 아니지만, 인터넷 익스플로러를 비롯한 몇몇 툴의 경우 이를 사용하면 훨씬 안정적이 된다. 이런 작업을 자동으로 해주는 편집기도 있고, 직접 지정해줘야 하는 편집기도 있다. HTML UTF-8 인코딩 다음 단계는 head에 메타태그를 추가하는 것이다.


1
2
<meta http-equiv="Content-Type"
      content="text/html; charset=UTF-8" />
cs


charset=UTF-8 부분은 UTF-8을 사용하고 있다는 사실을 브라우저에게 알려준다.


HTML UTF-8 인코딩[HTML encoding euc-kr 한글 깨짐]


마지막으로 컨텐츠가 HTML UTF-8로 돼 있음을 지정하기 위해 웹 서버를 설정한다. 이 부분이 약간 어려울 수 있는데, 서버의 설정 파일에 대한 접근 권한이나 로컬에서 설정을 오버라이드할 수 있는 능력이 필요하기 때문이다. 이것은 공유 호스트shared host에서는 불가능할 수도 있지만, 전문적으로 관리되는 서버에서는 가능하다. 아파치에서는 httpd.conf 파일이나 컨텐츠 디렉토리 안의 .htaccess 파일에 다음과 같은 명령을 추가하면 된다.


1
AddDefaultCharset utf-8
cs


출처 - 효율적인 XHTML 웹 표준 사이트 구축을 위한 리팩토링 HTML, 엘리엇 러스티 해롤드, 에이콘

HTML UTF-8 인코딩, 방법과 의도, charset=TUF-8 메타태그 추가

댓글