Linux, UNIX 및 Windows용 DB2 버전 9

유니코드 문자 인코딩

유니코드 문자 코드화 표준은 사용 중인 거의 모든 세계 언어의 문자를 포함하는 고정 길이의 코드화 체계입니다.

유니코드에 대한 정보는 유니코드 표준 서적의 최종판과 유니코드 콘소시엄 웹 사이트(www.unicode.org)에서 얻을 수 있습니다.

유니코드는 두 개의 인코딩 양식(8비트와 16비트)을 사용합니다. 디폴트 인코딩 양식은 16비트로 각 문자가 16비트(2바이트)이며 보통 U+hhhh로 표시됩니다. 여기서, hhhh는 문자의 16진수 코드 포인트입니다. 65 000+ 코드 요소가 세계 주요 언어의 대부분의 문자를 인코딩할 수 있을 만큼 충분하지만, 유니코드 표준도 백만 개나 더 많은 문자를 인코딩할 수 있는 확장 메커니즘을 제공합니다. 확장 메커니즘은 한 쌍의 상/하위 대리 문자를 사용하여 하나의 확장 또는 보조 문자를 인코딩합니다. 첫 번째(또는 상위) 대리 문자는 U+D800에서 U+DBFF 사이의 코드 값을 가지며, 두 번째(또는 하위) 대리 문자는 U+DC00에서 U+DFFF 사이의 코드 값을 갖습니다.

UCS-2

국제 표준화 기구(ISO) 및 국제 전기 기술 위원회(IEC) 10646 표준(ISO/IEC 10646)은 16비트(2바이트) 버전(UCS-2)과 32비트(4바이트) 버전(UCS-4)을 갖는 UCS(Universal Multiple-Octet Coded Character Set)를 지정합니다. UCS-2는 대리 문자가 없는 유니코드 16비트와 동일합니다. UCS-2는 유니코드 버전 3.0 레퍼토리에 정의된 모든(16비트) 문자를 인코딩할 수 있습니다. 유니코드 버전 3.1부터 도입된 새 보조 문자를 인코딩하려면 두 개의 UCS-2 문자(높은 대리 문자와 그 뒤의 낮은 대리 문자)가 필요합니다. 이들 보조 문자는 원래의 16비트 BMP(Basic Multilingual Plane 또는 Plane 0) 외부에 정의되어 있습니다.

UTF-8

16비트 유니코드 문자는 바이트 지향 ASCII 기반 응용프로그램과 파일 시스템에 대한 중요한 문제점을 제기합니다. 예를 들어, 비유니코드 인식 응용프로그램은 대문자 'A'(U+0041)의 선행 8 제로 비트를 1바이트 ASCII NULL 문자로 잘못 해석할 수 있습니다.

UTF-8(UCS 변환 형식 8)은 고정 길이 유니코드 문자를 가변 길이 ASCII-safe 바이트 문자열로 변환하는 알고리즘 변환입니다. UTF-8에서 ASCII 및 제어 문자는 보통 1바이트 코드로 표시되지만 다른 문자는 2바이트 이상입니다. UTF-8은 비보조 및 보조 문자를 모두 인코딩할 수 있습니다.

UTF-16

ISO/IEC 10646도 두 개의 UCS-2 문자를 사용하여 일부 UCS-4 문자를 암호화하기 위한 확장 기술을 정의합니다. UTF-16이라는 이 확장은 대리 문자가 있는 유니코드 16비트 인코딩 양식과 동일합니다. 요약하면 UTF-16 문자 레퍼토리는 모든 UCS-2 문자에, 대리 문자 쌍을 통해 액세스할 수 있는 백만 개의 문자를 더한 것입니다.

16비트 유니코드 문자를 바이트로 일련화할 때 일부 프로세서는 최상위 비트를 처음 위치에 배치하고(빅 엔디안(big-endian)순서라고 함) 다른 프로세서는 최하위 비트를 먼저 배치합니다(리틀 엔디안(little-endian) 순서라고 함). 유니코드의 디폴트 바이트 순서는 빅 엔디안입니다.

표 19에서 UTF-8 형식의 각 UTF-16 문자에 대한 바이트 수를 확인할 수 있습니다.

표 19. UTF-8비트 분산
코드 값

(2진)

UTF-16

(2진)

첫 번째 바이트

(2진)

두 번째 바이트

(2진)

세 번째 바이트

(2진)

네 번째 바이트

(2진)

00000000

0xxxxxxx

00000000

0xxxxxxx

0xxxxxxx
00000yyy

yyxxxxxx

00000yyy

yyxxxxxx

110yyyyy 10xxxxxx
zzzzyyyy

yyxxxxxx

zzzzyyyy

yyxxxxxx

1110zzzz 10yyyyyy 10xxxxxx
uuuuu

zzzzyyyy

yyxxxxxx

110110ww

wwzzzzyy

110111yy

yyxxxxxx

11110uuu

(여기서, uuuuu = wwww+1)

10uuzzzz 10yyyyyy 10xxxxxx

위의 각 내용에서 연속된 u, w, x, y, z는 문자의 비트 표시입니다. 예를 들어, U+0080은 2진에서 11000010 10000000으로 변환되며, 대리 문자 쌍 U+D800 U+DC00은 2진에서 11110000 10010000 10000000으로 변환됩니다.

관련 개념
관련 태스크

개념 주제                     이 주제는 다음의 일부분입니다. PDF 아이콘 관리 안내서: 계획

피드백

최종 갱신 2006-10-27

http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.admin.doc/doc/c0004816.htm