Html & Script

유니코드의 명칭과 속성

컨텐츠 정보

본문


UNICODE :
http://www.unicode.org/standard/translations/korean.html


유니코드에 대해 ?
어떤 플랫폼,
어떤 프로그램,
어떤 언어에도 상관없이
유니코드는 모든 문자에 대해 고유 번호를 제공합니다.




UCS-2 :
대부분의 흔히 쓰는 문자들을 정의한 규격입니다.
2bytes 범위라서 UCS-2 입니다.
이걸 bit 로 표현하여 UTF-16 입니다.
UTF-16LE, UTF-16BE 가 동일한 규격으로 Little Endian, Big Endian 은 단지 byte order (바이트 순서)가 다를뿐 입니다.
iconv --list 를 해보면 쓸데없이 많이 나오는데,
UTF-16LE, UCS-2LE 가 같은거고 BE 끼리 같은거라고 보면 됩니다.
그냥 UTF-16은 UTF-16LE 와 동일하나 앞에 BOM 헤더가 붙습니다.
UCS-2 는 헤더가 붙지 않습니다.



UCS-4 :
UCS-2 의 확장입니다.
뒤의 2bytes 는 UCS-2 와 완전히 호환됩니다.
즉, UCS-2 의 0xFFFF 는 UCS-4 의 0x0000FFFF 와 같은 코드입니다.
UTF-32 로 말만 바꾸어 위의 내용과 동일합니다.
인터넷 브라우저 내부에서 이것이 사용되며,
js 등에서 indexOf() 로 가져오면 UCS-4 코드가 10진수로 반환됩니다.
10진수 이므로 65535 까지는 UCS-2 와 완전 호환 됩니다.



UTF-8 :
UCS-2, UCS-4 는 영어권에서는 분명한 낭비가 있습니다.
ascii 만으로도 충분히 표현 가능한데, 한글자에 쓰지도 않는 바이트가 낭비되지요.
그런점도 있고, 문자열로 뭘 하기에 UTF-7 보다는 편리해서 가장 보편적으로 사용됩니다.
가변길이를 가지는 특징이 있습니다.
단지 계산만으로 UCS-2, UCS-4 규격으로의 상호변환이 가능합니다.
한국어는 UCS-2 규격 내에 있기 때문에 3bytes 내에서 표현 가능합니다.



UTF-7 :
이메일 등 ascii 만으로 표현해야 할 필요성에 의해 만들어졌습니다.
한 글자당 8bit 씩 할당하지만 사용은 7bit 만 합니다.
UTF-8 과 같은 특징을 가지고 있으나,
모든 ascii 값이 실제 ascii 와 같은 의미가 아니기 때문에 이것으로 무엇을 하기는 좀 힘듭니다.




BOM (Byte Order Mark) :
유니코드 종류가 많기 때문에 앞에 이런 헤더를 붙여서 구분하기도 합니다.
EmEditor, UltraEdit, Vim 등의 에디터에서 인식합니다.




코드표
http://www.unicode.org/charts/

각 나라별 코드범위와 정의된 문자를 볼 수 있습니다.
앞에 0 을 적지 않았기 때문에 (Zerofill 이 아니기 때문에) 4자리까지는 UCS-2 려니 하시고,
5 자리 부터는 UCS-4 려니 하십시오.

-----------------------------------------------------------

보충 내용으로...
UCS 는 코드값의 테이블이라고 생각하면 됩니다. UTF 는 인코딩의 방법(즉, 바이트의 연속된 순서를 어떻게 표현할 것이냐 하는 정의)이고, UCS 는 미리 정의되어 있는 각 글자 코드를 테이블 화 해놓은 것입니다. 가령 글자 '가' 는 유니코드에서 U+AC00 에 해당하는데, UCS2 에서는 0xAC00 테이블 좌표에 위치하고 있습니다. 이것을 UTF-8 인코딩하면, 0xEAB080 이 됩니다.

누구도 이런 식으로 설명해주는 사람이 없어서 예전엔 UCS2 = UTF16?? 이라고 헷갈리고 헤맸는데, 이게 정확한 설명인지 모르겠습니다. 잘못된 점이 있으면 누가 지적해주시길... ^^;

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
희생이란 미(美)라고 하는 글자가 보여주는 그대로 희생양(羊)이 클수록 아름다운 법이다. 곱하기가 쌓아올린 삶의 정상에서의 추락을 막아주는 것은 나누기(÷)의 삶뿐이다. (<들숨날숨 8월호> 김산춘신부님)