범용 부호화 문자 집합
Universal Coded Character Set에일리어스 | UCS, Unicode |
---|---|
언어 | 국제 |
표준. | ISO/IEC 10646 |
인코딩 형식 | UTF-8, UTF-16, GB 18030 일반적이지 않음: UTF-32, BOCU, SCSU, UTF-7 |
선행 | ISO/IEC 8859, ISO/IEC 2022, 기타 다양한 기능. |
Universal Coded Character Set(UCS, Unicode)는 국제 표준 ISO/IEC 10646, 정보 기술 - Universal Coded Character Set(UCS; 유니버설 부호화 문자 세트)에 의해 정의되는 표준 문자 세트이며, 이는 많은 문자 인코딩의 기초가 되어 이전에 표현되지 않은 문자 수를 개선합니다.e가 추가되었습니다.
UCS에서는 110만 개 이상의 코드포인트를 사용할 수 있지만 2000년 이전에는 Basic Multilinguage Plane(BMP; 기본 다국어 플레인)이 공통으로 사용되고 있었습니다.이 상황은 2006년 중화인민공화국(PRC)이 관할구역에서 판매되는 모든 소프트웨어를 GB 18030을 지원해야 한다고 판결하면서 바뀌기 시작했습니다.이를 위해서는 BMP를 넘어서는 PRC에서의 판매를 목적으로 한 소프트웨어가 필요했습니다.
이 시스템은 의도적으로 많은 코드 포인트를 문자에 할당하지 않습니다.이것은, 장래의 확장을 가능하게 하거나 다른 부호화 형식과의 경합을 최소한으로 억제하기 위해서입니다.
UCS 정의 UTF-16의 원래 에디션(UCS-2의 확장판)은 BMP 외부의 코드 포인트를 나타냅니다.BMP의 S(Special) 존 내의 코드 포인트 범위는 문자에 할당되지 않은 상태로 유지됩니다.UCS-2에서는 이들 코드포인트에 대한 코드값 사용은 금지되지만 UTF-16에서는 쌍으로 사용할 수 있습니다.유니코드도 UTF-16을 채용하고 있습니다만, 유니코드 용어에서는 하이 하프 존 요소는 "high replaces"가 되고 로우 하프 존 요소는 "low replaces"[clarification needed]가 됩니다.
또 다른 부호화 UTF-32(이전의 명칭 UCS-4)에서는, 코드 스페이스의 1 문자의 부호화에 4 바이트(합계 32 비트)를 사용합니다.따라서 UTF-32는 API 및 소프트웨어 어플리케이션 내의 모든 코드 포인트를 바이너리 형식으로 표현할 수 있습니다.
역사
국제표준화기구(ISO)는 1989년에 범용 문자 집합을 구성하기 시작했고 1990년에 ISO 10646의 초안을 발표했다.Hugh McGregor Ross는 그것의 주요 건축가 중 한 명이었다.그 기준은 현행 기준과 확연히 달랐다.정의:
- 128 그룹
- 256면
- 256행
- 256 셀,
총 2,147,483,648 문자의 경우 C0 및 C1 제어 코드(0x00 ~0x1F 및 0x80 ~0x9F, 16진수 표기)의 바이트 값이 셀, 플레인 행을 지정하는 4바이트 중 하나에 금지되어 있기 때문에 실제로는 표준에서는 679,477,248 문자만 코드화할 수 있습니다.예를 들어, 라틴 대문자 A는 그룹 0x20, 평면 0x20, 행 0x20, 셀 0x41에 위치합니다.
이 원시 ISO/IEC 10646 표준의 문자를 세 가지 방법 중 하나로 코드화할 수 있습니다.
- UCS-4, 각 문자에 대해 4바이트, 모든 문자의 심플한 인코딩을 가능하게 합니다.
- UCS-2(문자마다 2바이트).첫 번째 플레인 0x20(기본 다국어 플레인)의 인코딩을 유효하게 합니다.이 플레인에는 최초의 36,864개의 코데포인트가 포함되어 있습니다.또, ISO/IEC 2022 이스케이프 시퀀스를 사용해 다른 플레인 및 그룹이 스위칭 됩니다.
- UTF-1. 길이가 다른 바이트의 시퀀스(1~5바이트, 각각 제어 코드 없음) 내의 모든 문자를 부호화합니다.
따라서 1990년에는 범용 문자 집합을 위한 두 가지 이니셔티브가 존재했다.각 문자(65,536 문자)에 대해 16비트를 사용하는 Unicode 및 ISO/IEC 10646.소프트웨어 회사들은 ISO 표준의 복잡성과 크기 요구사항을 수용하기를 거부했고,[citation needed] 많은 ISO 국가 기구가 ISO 표준에 반대하도록 설득할 수 있었습니다.ISO 관계자들은 현재 상태로는 표준을 계속 지원할 수 없다는 것을 깨닫고 유니코드와의 표준 통합을 협상했다.두 가지 변화가 일어났다: 문자에 대한 제한 해제(제어 코드 값 금지), 할당을 위한 코드 포인트를 개방하고, 기본 다국어 플레인의 레퍼토리와 유니코드 레퍼토리의 동기화.
한편, 시간이 지남에 따라 Unicode 표준 자체에서 상황이 변화하여 65,536자가 불충분하게 표시되었으며 버전 2.0 이후부터는 UTF-16 대리 메커니즘을 통해 17개의 플레인에서 1,112,064개의 코드 포인트를 인코딩할 수 있게 되었습니다.따라서 ISO/IEC 10646은 UTF-16으로 인코딩할 수 있는 글자 수만큼만 제한되었으며, 6억7천900만자가 아닌 100만자를 조금 초과해서는 안 됩니다.ISO/IEC 10646의 UCS-4 인코딩은 UTF-16 범위로 제한되고 UTF-32라는 이름으로 Unicode 표준에 통합되었습니다.단, 프로그램의 내부 데이터 이외에서는 거의 사용되지 않습니다.
Plan 9 운영체제 설계자인 Rob Pike와 Ken Thompson은 UCS 부호화에서 가장 널리 사용되는 UTF-8이라고 불리는 [1]새로운 고속 혼합 폭 부호화를 고안했습니다.
유니코드와의 차이점
ISO/IEC 10646과 Unicode는 동일한 레퍼토리와 번호를 가지고 있습니다.Unicode는 새로운 버전을 출시하고 새로운 문자를 추가하는 빈도가 높지만, 두 표준 모두 동일한 번호를 가진 동일한 문자가 존재합니다.Unicode에는 ISO/IEC 10646의 적용범위를 벗어나는 규칙 및 사양이 있습니다.ISO/IEC 10646은 ISO/IEC 8859와 같은 이전 표준의 확장인 단순한 문자표입니다.이와는 대조적으로 Unicode는 아랍어나 히브리어와 같은 오른쪽에서 왼쪽으로의 스크립트에 대한 대조, 폼의 정규화 및 양방향 알고리즘을 추가합니다.플랫폼 간의 상호 운용성을 위해 특히 양방향 스크립트를 사용하는 경우 ISO/IEC 10646을 지원하는 것만으로는 부족합니다.Unicode를 실장해야 합니다.
이러한 규칙 및 알고리즘을 지원하기 위해 Unicode는 한 문자의 기본 양방향 클래스를 결정하는 속성 및 문자가 다른 문자와 결합하는 방법을 결정하는 속성 등 많은 속성을 집합의 각 문자에 추가합니다.문자가 유럽의 숫자 '8'이나 저속분수 'θ' 등의 숫자 값을 나타내는 경우에는 그 숫자 값도 문자의 속성으로 가산된다.Unicode는 이러한 속성을 여러 언어를 혼합하여 상호 운용 가능한 텍스트 처리를 지원합니다.
일부 응용 프로그램은 ISO/IEC 10646 문자를 지원하지만 Unicode를 완전히 지원하지 않습니다.이러한 애플리케이션 중 하나인 Xterm은 문자 대 문자 대 글리프[clarification needed] 매핑과 단일 방향성을 가진 모든 ISO/IEC 10646 문자를 올바르게 표시할 수 있습니다.단순한 오버스트라이핑 방법으로 일부 결합 표시를 처리할 수 있지만 히브리어(양방향), 데바나가리(다수의 글리프에 한 문자) 또는 아랍어(둘 다 특징)를 표시할 수는 없습니다.대부분의 GUI 어플리케이션에서는 이러한 스크립트를 처리하는 표준 OS 텍스트 그리기 루틴을 사용합니다.단, 어플리케이션 자체가 항상 올바르게 처리되는 것은 아닙니다.
유니버설 코드 문자 집합 인용
ISO/IEC 10646 표준 패밀리에 대한 일반적인 비공식 인용문인 ISO/IEC 10646은 대부분의 산문에서 허용된다.또한 Unicode라는 용어는 별도의 표준이지만 UCS에 대해 논의할 때 비공식적으로 자주 사용됩니다.단, UCS에 대한 표준 참조는 ISO/IEC 10646:{year} 형식으로 발행 연도를 인용해야 합니다(예: ISO/IEC 10646:2014).
유니코드와의 관계
1991년 이후 유니코드 컨소시엄과 ISO/IEC는 유니코드 표준("유니코드")과 ISO/IEC 10646을 함께 개발했습니다.유니코드 버전 2.0의 레퍼토리, 문자 이름 및 코드 포인트는 ISO/IEC 10646-1:1993의 레퍼토리와 정확히 일치합니다.2000년 2월에 Unicode 3.0이 발행된 후 대응하는 새로운 문자 및 갱신된 문자가 ISO/IEC 10646-1:2000을 통해 UCS에 입력되었습니다.2003년에 ISO/IEC 10646의 파트 1과 파트 2가 단일 부품으로 통합되었으며, 이후 유니코드 표준과 거의 동기화하여 표준에 문자를 추가하는 많은 수정이 이루어졌습니다.
- ISO/IEC 10646-1:1993 = 유니코드 1.1
- ISO/IEC 10646-1:1993 + 수정 5 ~7 = 유니코드 2.0
- ISO/IEC 10646-1:1993 + 수정판 5~7 = 수정판 18에 포함된 유로 기호 및 객체 대체 문자를 제외한 유니코드 2.1
- ISO/IEC 10646-1:2000 = Unicode 3.0
- ISO/IEC 10646-1:2000 및 ISO/IEC 10646-2:2001 = 유니코드 3.1
- ISO/IEC 10646-1:2000 + 개정판 1 및 ISO/IEC 10646-2:2001 = 유니코드 3.2
- ISO/IEC 10646:2003 = 유니코드 4.0
- ISO/IEC 10646:2003 + 개정 1 = Unicode 4.1
- ISO/IEC 10646:2003 및 수정안 1 ~2 = 수정안 3에 포함된 Devanagari 문자 GGA, JJA, DDDA 및 BBA를 제외한 유니코드 5.0
- ISO/IEC 10646:2003 및 개정판 1~4 = 유니코드 5.1
- ISO/IEC 10646:2003 및 개정판 1~6 = 유니코드 5.2
- ISO/IEC 10646:2003 + 개정판 1~8 = ISO/IEC 10646:2011 = Unicode 6.0 (인도 루피 기호 제외)
- ISO/IEC 10646:2012 = 유니코드 6.1
- ISO/IEC 10646:2012 = 수정안 1에 포함된 터키 리라 부호를 제외한 유니코드 6.2
- ISO/IEC 10646:2012 = 수정안 1에 포함된 터키 리라 부호를 제외한 유니코드 6.3과 수정안 2에 포함된 5개의 양방향 제어 문자(아랍 문자 표시, 왼쪽에서 오른쪽으로 분리, 오른쪽에서 왼쪽으로 분리, 첫 번째 강력한 분리, 팝 방향 분리)
- ISO/IEC 10646:2012 + 수정안 1 및 2 = 루블 기호를 제외한 유니코드 7.0
- ISO/IEC 10646:2014 + 개정판 1 = Unicode 8.0(Lari 기호 제외), CJK 통합 한자 9개, 이모티콘 문자 41개
- ISO/IEC 10646:2014 + 수정안 1 및 2 = Unicode 9.0(Adlam, Newa, 일본어 TV 기호 및 74개의 이모티콘 및 기호 제외)
- ISO/IEC 10646:2017 = Unicode 10.0 (285 Hentaigana 문자, 3 Zanabazar Square 문자, 56개의 이모티콘 기호 제외)
- ISO/IEC 10646:2017 + 수정안 1 = Unicode 11.0 (46 Mtavruli 그루지야 대문자, 5개의 CJK 통합 한자 및 66개의 이모티콘 문자 제외)
- ISO/IEC 10646:2017 + 수정안 1 및 2 = 유니코드 12.0 (62자 추가 제외)
- ISO/IEC 10646: 명령어 = 유니코드 13.0
- ISO/IEC 10646: 명령어 = Unicode 14.0
「 」를 참조해 주세요.
관련 표준:
- ISO/IEC 646 (ISO/IEC 10646 및 Unicode와 포즈0 ~ 127은 동일하며 646 및 10646은 동일)
- ISO/IEC 2022 정보기술: 문자 코드 구조 및 확장 기술
- ISO/IEC 6429 C0 및 C1 제어 코드
- ISO/IEC 8859(UCS 및 Unicode의 포즈0 ~ 255는 ISO/IEC 8859-1, 에일리어스 ISO Latin 1과 동일)
- ISO/IEC 14651 정보기술 – 국제적인 문자열 순서 지정 및 비교
- ISO 15924 스크립트 이름 표현 코드(각 문자는 이러한 스크립트 중 하나와 관련지어짐)
- Unicode 인코딩 비교
- XML 및 HTML 문자 엔티티 참조 목록
- 유니코드 글꼴 목록
- 범용 문자 집합 문자
- ISO/IEC JTC 1/SC 2
메모들
레퍼런스
- ^ Pike, Rob (2003-04-03). "UTF-8 history". Archived from the original on 2016-05-23.
외부 링크
- 공개 표준(ISO) – ISO 10646:2014(129MB ZIP 파일, 2014-09-01 출시) 및 전자 인서트(1.7MB ZIP 파일) 사본 포함
- ISO/IEC JTC1/SC2/WG2, ISO 10646 담당 작업 그룹
- UTF-8 및 Unicode FAQ
- SIL의 프리웨어 글꼴, 에디터 및 문서
- 웹 브라우저와 글꼴 기능을 테스트하는 단순하지만 쾌적한 UTF-8 예시.
- 1989년 10월부터 ADA 9x의 문자 집합이 발행되었습니다.원래의 합병전의 DIS ISO-10646에 대해 자세하게 설명합니다.