Character set. 말 그대로, 문자의 집합. 좀 더 정확히는 서로 다른 문자들을 구분하기 위해서 문자들에 번호를 붙여 놓은 것이다(또는 정사각형으로 배열해서 행·열로 부르거나). 그러니까 여기서 말하는 집합은 set이기도 하지만 repertoire로 이해하는 게 더 비슷하다.
컴퓨터 상에서 문자 집합은 어떤 문자가 표현 가능하고 어떤 문자가 아닌지를 알려 주는 역할을 한다. 예를 들어 “가”는 KS X 1001에서는 48행 33열(30-21)에 배당되어 있고, 유니코드에서는 44032번(U+AC00)으로 배당되어 있다. 하지만 ASCII에는 포함되어 있지 않으므로 ASCII만 쓸 수 있는 컴퓨터에서는 “가”를 표현할 수 없게 된다(물론 요즘은 이런 컴퓨터는 드물다). 일단 문자 집합이 결정되면, 문자 집합에 있는 문자들을 적절한 바이트열로 나타내 주는 문자 인코딩을 사용해서 실제로 해당하는 문자를 표현할 수 있다. 앞의 예를 계속 쓰면, KS X 1001을 인코딩하는 EUC-KR에서 “가”는 B0 A1
로, 유니코드를 인코딩하는 UTF-8에서 EA B0 80
으로 저장된다.
옛날의 많은 문자 집합은 문자 인코딩으로서의 역할도 겸하는 경우가 꽤 많아서 그 구분이 명확하진 않지만[1] 실제로는 구분되는 의미이다. 한 문자 집합으로부터 여러 개의 문자 인코딩이 만들어질 수 있으며, 한 문자 인코딩이 여러 문자 집합을 인코딩할 수도 있다. 이를 잘 보여 주는 예는 일본어인데, Shift_JIS는 JIS X 0201과 JIS X 0208 문자 집합을 함께 인코딩하며, 이 중 JIS X 0208은 EUC-JP를 비롯한 여러 다른 인코딩에서도 지원하고 있다.
1 목록
- 유니코드
- 로마자: ASCII, ISO/IEC 646, ISO 8859-1, ISO 8859-2, ISO 8859-3, ISO 8859-4, ISO 8859-9, ISO 8859-10, ISO 8859-13, ISO 8859-14, ISO 8859-15, ISO 8859-16
- 키릴문자: ISO 8859-5, KOI8-R, KOI8-U 등
- 한국어 (한글): KS X 1001, KS X 1002, KS X 1003, 국규 9566(…)
- 일본어 (가나와 칸지): JIS X 0201, JIS X 0208, JIS X 0212, JIS X 0213
- 중국어 (한자): GB 2312 + GB/T 12345, GB 18030, CNS 11643, Big5, HKSCS
1
대표적으로 HTML에서 문자 인코딩은 charset
을 사용해서 (HTML5의 경우, <meta charset=utf-8>
과 같이) 지정한다. ▲