Unicode, ISO 10646   International Organization for Standardization 10646   유니코드

(2018-11-03)

UTF-8, UTF-16, Code Point, 코드 포인트, Surrogate Pair, 써로게이트 페어

1. ISO-10646 또는 Unicode

  ㅇ 흔히 Unicode라고 불리는 문자세트(문자집합)과 그 부호화에 대해서 정의하고 있는 표준

  ㅇ `유니코드 콘소시엄`이 처음 유니코드 표준안을 내놓고, 후에 `ISO/IEC`와 협력함
     - ISO/IEC 10646 (국내 KS X 1005-1)
     - 유니코드와 ISO/IEC 10646는 문자 목록을 공유하며, 문자 인코딩 방식까지 동일하지만, 
        . 유니코드 표준안이 더 많은 세부 규정들을 포함함


2. 유니코드 특징

  ㅇ 다국어 환경에 유리 (지금껏 나온 코드 중 가장 큰 문자 집합의 하나로 인정 받음)
     - 유니코드는 문자 각각에 부여되는 데이터값을 모두 16비트(2 바이트)로 통일하여,
     - 모든 문자 간의 호환성을 제고하여, 컴퓨터에 의한 데이터의 저장 및 교환을 가능하게 함
     - 하나의 문서 내에 여러 나라 언어를 혼합 작성하는 것이 가능하게 됨

     * [참고] ☞ 유니코드 홈페이지 

  ㅇ 유니코드 문자집합에서, 각 문자의 위치를 `코드 포인트(Code Point)`라고 하여,
     - 숫자 값이 할당되며, U+8A9E 처럼 앞에 U+를 붙이고 뒤에 16진수 값으로 표현됨

  ㅇ 유니코드는 문자집합 범위를, Plane 0 ~ 16 으로 구분하고,
     - 특히, Plane 0 인 Basic Multilingual Plane(기본 다국어 평면) 은, 
        . 전세계 언어 문자 대부분이 이에 속하고 (U+0000 ~ U+FFFF),
        . 이 영역은 16 비트 그대로 인코딩 되어있음
        . 이외 영역은 달리 인코딩될 수 있음

     - 한편, 한글의 경우, 
        . 전체 65,536 자의 17.04%(11,172 자)가,
        . Ox AC00(`가`) ~ D7A3(`힣`) 영역에 가나다 순으로 할당되어있음


3. 유니코드 주요 문자 인코딩 방식들

  ㅇ UTF-8  : 유니코드를 위한 가변 길이 문자 인코딩 방식 중의 하나 (가장 보편적으로 사용)
     - 한 문자를 나타내기 위해 1 ~ 4 바이트까지를 가변적으로 사용
        . 여기서, 가변 길이 이란? 
           .. 언어 마다 한 글자가 차지하는 길이(바이트)가 다르다는 것임
           .. 즉, 언어 마다 다른 바이트 수로 표현될 수 있음
        . 한편, 4 바이트 표현 문자는, 기본다국어평면 밖에 있는 문자로써,
           .. 드물게 사용되는 문자들 임
     - (U+0000 ~ U+FFFF) : 기본다국어평면(BMP, Basic multilingual plane)에 속하는 문자들
        . ASCII (영문,공백문자,기호 등) 1 바이트 (128 문자로 인코딩) (U+0000 ~ U+007F)
        . 로마/그리스/아랍문자 2 바이트 (1,920 문자로 인코딩)
        . 중국/일본/한국 등 아시아계 3 바이트 (63,488 문자로 인코딩)
     - UTF-8은, 
        . 유닉스,HTML,웹페이지(웹브라우저) 등에서 주로 쓰임

  ㅇ UTF-16 : 4 바이트로 표현 (1,114,112 문자로 인코딩) (UCS-2의 확장)
     - 유니코드로 표현할 수 있는 범위를 넘어서는 것도 표현 가능
        . 특수 한자,이모티콘 등
     - (U+0000 ~ U+FFFF) : 기본다국어평면(BMP, Basic multilingual plane)에 속하는 문자들
        . 이 범위에 속하는 문자들 만 그대로 16 비트(2 바이트) 값으로 인코딩이 되고,
        . 그 이상의 문자는 아래와 같이 특별히 정해진 방식으로 32 비트(4 바이트)로 인코딩
     - (U+10000 ~)
        . U+10000 이상은 써로게이트 영역(Surrogate)이라 하여,
           .. 인코딩 값(2 바이트) 2개를 합쳐 구성됨
        . 즉, 기본 다국어 평면에 포함되지 않는 문자(16 비트로 값을 표현할 수 없는 문자들)은,
           .. 써로게이트(Surrogate) 문자 영역에 해당하는 2개의 16 비트 문자로 변환되어,
           .. 이 한 쌍(즉, 32비트)이 그 문자를 나타내게 됨
        . 써로게이트 페어(Surrogate Pair)에 의한 유니코드의 코드 포인트 값의 계산법
           .. u = (a - 0xD800) * 0x400 + (b - 0xDC00) + 0x10000
           .. (a : 상위 써로게이트 U+D800 ~ U+DBFF, b : 하위 써로게이트)
     - UTF-16은, 
        . MS社 윈도우 계열,자바 언어,자바스크립트 언어 등에서 사용

  ㅇ UCS-2  : 모든 문자를 2 바이트로 표현 (65,535개)

  ㅇ UCS-4  : 모든 문자를 4 바이트로 표현

  ㅇ ACE(ASCII Compatible Encoding) 등


[자료표현코드] 1. 알파뉴메릭 코드 2. ASCII 코드 3. KSC5601 한글완성형코드표준 4. 유니코드 5. 확장 유닉스 코드(EUC) 6. 문자 셋 7. MSB,LSB 8. Big-endian,Little-endian 9. ISO 8859 문자집합
[제어 문자]
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램,프로그래밍
      1.   프로그래밍 언어론
      2.   구조적 프로그래밍
      3.   객체지향 프로그래밍
      4.   자료표현코드
            1. 알파뉴메릭 코드
            2. ASCII 코드
            3. KSC5601 한글완성형코드표준
            4. 유니코드
            5. 확장 유닉스 코드(EUC)
            6. 문자 셋
            7. MSB,LSB
            8. Big-endian,Little-endian
            9. ISO 8859 문자집합
        1.   제어 문자
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌