문자표(character set)과 문자 인코딩(Character Encoding)은 매우 혼란스럽게 쓰인다.
character set 은 세상에서 쓰이는 문자와 기호들의 목록일 뿐이며 이것들은 Code Point라고 불리우는 어떤 숫자값으로 매핑돼 있다.
encoding 은 code point 를 어떻게 byte 로 표현하느냐의 문제이다.
유니코드는 (거의) 전 세계의 모든 문자에 번호를 부여한 문자표(Character Set) 이다.
하지만 유니코드는 여러가지 인코딩(Character Encoding) 방식으로 표현될 수 있다. UTF-8
, UTF-16
, UTF-32
등.
하나의 Unicode 문자(code point)를 UTF-8
, UTF-16
, UTF-32
는 서로 다른 byte 들로 표현한다.
-
문제는 현재 아주 많은 분야에서 문자셋과 인코딩을 혼란스러워하고 있다. 대부분의 경우 charset
을 지정하라고 할 때 문자셋인 아닌 character encoding 을 지정해야 할 것이다.