유니코드와 UTF-8은 다르다.

유니코드는 말그대로 문자 코드이고, utf-8은 유니코드 인코딩 방식이다.


알파벳 'A'는 U+0x0041, 한글의 '가'는 U+0xAC00로 나타낼 수 있는데, 여기서의 'U'는 유니코드의 시작점이고, 뒤쪽의 16진수는 유니코드의 정의 테이블에서 각 문자가 어디에 위치하고 있는지를 나타낸다. (이를 코드 포인트라고 함) 이 유니코드 테이블은 정의가 완료된 상태가 아니며, 앞으로도 계속 크기가 커질 것이다. (www.unicode.org에서 계속 작업 중)


이런 식으로 현재 유니코드 표준에 포함된 문자들은 각자의 고유한 코드포인트를 가지고 있다. 최초에 유니코드가 나왔을때는 거의 모든 문자의 코드포인트가 2^16 범위 안에 들어와서 아스키 문자는 1바이트, 유니코드는 2바이트라는 이상한 정의가 통했지만, 지금은 꼭 그렇지도 않다. 중요한 건, 유니코드는 특정 바이트의 수로 정의할 수 없는 추상적인 위치라는 것이다.


그럼 이 문자들을 실제 컴퓨터에서는 어떻게 표현하는 것이 좋을까? 그리고 이기종 컴퓨터간에는 유니코드 문자열을 어떻게 주고받을 수 있을까? 여기서 필요한 것이 유니코드의 인코딩 방식이다. UTF8, UTF16, UTF16-BE, UTF16-LE, UCS2, UCS4 이런 다양한 인코딩 방식이 유니코드를 인코딩하는 데 사용되고 있다.


UTF-8이 가장 바이트 낭비 없이 모든 유니코드를 표현할 수 있기 때문에, 점차 표준으로 자리잡고 있다.


'프로그래밍 > 일반' 카테고리의 다른 글

해시 함수? 해시 충돌?  (0) 2015.04.26
프레임워크란?  (11) 2012.05.28
스크립트 언어란?  (1) 2012.05.23
블로그 이미지

JOKERGT

타고난 능력이란, 자연계의 초목과 같아 항상 탐구로써 가지를 쳐줘야 한다. https://www.linkedin.com/in/datajoker1

,