unicodedata — 유니코드 데이터베이스¶
이 모듈은 모든 유니코드 문자의 특성을 정의하는 Unicode Character Database (UCD)에 접근할 수 있게 해줍니다. 이 데이터베이스에 포함된 데이터는 UCD 버전 17.0.0 를 기반으로 컴파일되었습니다.
이 모듈은 유니코드 표준 부록 #44인 “Unicode Character Database” 에서 정의된 것과 동일한 이름과 기호를 사용합니다.
더 보기
유니코드 및 이 모듈의 사용 방법에 대한 자세한 정보는 유니코드 HOWTO 를 참조하십시오.
조회 |
|
이름으로 문자 조회 |
|
문자에 할당된 이름을 반환합니다. |
|
숫자 값 |
|
문자의 십진수 값 |
|
문자의 디짓 값 |
|
문자의 숫자 값 |
|
속성 |
|
문자의 양방향 클래스 |
|
문자의 유니코드 블록 |
|
문자의 일반 카테고리 |
|
문자의 정준 결합 클래스 |
|
문자 분해 매핑 |
|
문자의 동아시아 폭 |
|
문자가 Extended_Pictographic 속성을 가졌는지 확인합니다. |
|
문자의 Grapheme_Cluster_Break 속성 |
|
문자의 Indic_Conjunct_Break 속성 |
|
문자가 유효한 식별자 연속 문자체인지 확인합니다. |
|
문자가 유효한 식별자 시작 문자인지 확인합니다. |
|
문자의 Mirrored 속성 |
|
정규화 |
|
문자열의 정규화된 형태를 반환합니다. |
|
유니코드 문자열이 정규화되었는지 확인합니다. |
|
텍스트 분할 |
|
문자열 내의 자소 문자군(grapheme cluster)을 순회합니다. |
|
- unicodedata.lookup(name, /)¶
이름으로 문자를 조회합니다. 해당 이름을 가진 문자가 발견되면 그에 상응하는 문자를 반환하고, 찾지 못할 경우
KeyError를 발생시킵니다. 예:>>> unicodedata.lookup('LEFT CURLY BRACKET') '{'
이 함수가 반환하는 문자는 문자열 리터럴에서
\N이스케이프 시퀀스로 생성된 것과 동일합니다. 예:>>> unicodedata.lookup('MIDDLE DOT') == '\N{MIDDLE DOT}' True
- unicodedata.name(chr, default=None, /)¶
chr 문자에 할당된 이름을 문자열로 반환합니다. 정의된 이름이 없으면 default 를 반환하고, 제공되지 않으면
ValueError를 발생시킵니다. 예:>>> unicodedata.name('½') 'VULGAR FRACTION ONE HALF' >>> unicodedata.name('\uFFFF', 'fallback') 'fallback'
- unicodedata.decimal(chr, default=None, /)¶
chr 문자에 할당된 십진수 값을 정수로 반환합니다. 해당 값이 정의되지 않으면 default 를 반환하고, 제공되지 않으면
ValueError를 발생시킵니다. 예:>>> unicodedata.decimal('\N{ARABIC-INDIC DIGIT NINE}') 9 >>> unicodedata.decimal('\N{SUPERSCRIPT NINE}', -1) -1
- unicodedata.digit(chr, default=None, /)¶
chr 문자에 할당된 디짓 값을 정수로 반환합니다. 해당 값이 정의되지 않으면 default 를 반환하고, 제공되지 않으면
ValueError를 발생시킵니다:>>> unicodedata.digit('\N{SUPERSCRIPT NINE}') 9
- unicodedata.numeric(chr, default=None, /)¶
chr 문자에 할당된 숫자 값을 부동 소수점으로 반환합니다. 해당 값이 정의되지 않으면 default 를 반환하고, 제공되지 않으면
ValueError를 발생시킵니다:>>> unicodedata.numeric('½') 0.5
- unicodedata.category(chr, /)¶
chr 문자에 할당된 일반 카테고리를 문자열로 반환합니다. 일반 카테고리 이름은 두 개의 문자로 구성됩니다. 카테고리 코드 목록은 유니코드 문자 데이터베이스 문서의 일반 카테고리 값 섹션 을 참조하십시오. 예:
>>> unicodedata.category('A') # 'L'etter, 'u'ppercase 'Lu'
- unicodedata.bidirectional(chr, /)¶
chr 문자에 할당된 양방향 클래스를 문자열로 반환합니다. 해당 값이 정의되어 있지 않으면 빈 문자열을 반환합니다. 양방향 코드 목록은 유니코드 문자 데이터베이스의 양방향 클래스 값 섹션 문서를 참조하십시오. 예:
>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A'rabic, 'N'umber 'AN'
- unicodedata.combining(chr, /)¶
chr 문자에 할당된 정준 결합 클래스를 정수로 반환합니다. 결합 클래스가 정의되지 않은 경우
0을 반환합니다. 자세한 내용은 유니코드 문자 데이터베이스의 정준 결합 클래스 값 섹션 를 참조하십시오.
- unicodedata.east_asian_width(chr, /)¶
chr 문자에 할당된 동아시아 폭을 문자열로 반환합니다. 폭의 목록이나 더 자세한 정보는 유니코드 표준 부록 #11 를 참조하십시오.
- unicodedata.block(chr, /)¶
chr 문자에 할당된 블록 를 반환합니다. 예:
>>> unicodedata.block('S') 'Basic Latin'
Added in version 3.15.
- unicodedata.mirrored(chr, /)¶
chr 문자에 할당된 Mirrored 속성을 정수로 반환합니다. 해당 문자가 양방향 텍스트에서
>>> unicodedata.mirrored('>') 1
- unicodedata.isxidstart(chr, /)¶
chr 이 유니코드 표준 부록 #31 에 따른 유효한 식별자 시작 문자인지(즉,
XID_Start속성을 가졌는지) 확인하여True이면 이를 반환합니다. 그렇지 않으면False를 반환합니다. 예:>>> unicodedata.isxidstart('S') True >>> unicodedata.isxidstart('0') False
Added in version 3.15.
- unicodedata.isxidcontinue(chr, /)¶
chr 이 유니코드 표준 부록 #31 에 따른 유효한 식별자 문자(즉,
XID_Continue속성을 가졌는지) 확인하여True이면 이를 반환합니다. 그렇지 않으면False를 반환합니다. 예:>>> unicodedata.isxidcontinue('S') True >>> unicodedata.isxidcontinue(' ') False
Added in version 3.15.
- unicodedata.decomposition(chr, /)¶
chr 문자에 할당된 문자 분해 매핑을 문자열로 반환합니다. 해당 매핑이 정의되지 않은 경우 빈 문자열을 반환합니다. 예:
>>> unicodedata.decomposition('Ã') '0041 0303'
- unicodedata.grapheme_cluster_break(chr, /)¶
문자에 할당된 Grapheme_Cluster_Break 속성을 반환합니다.
Added in version 3.15.
- unicodedata.indic_conjunct_break(chr, /)¶
문자에 할당된 Indic_Conjunct_Break 속성을 반환합니다.
Added in version 3.15.
- unicodedata.extended_pictographic(chr, /)¶
문자가 Extended_Pictographic 속성을 가졌으면
True를, 그렇지 않으면False를 반환합니다.Added in version 3.15.
- unicodedata.normalize(form, unistr, /)¶
유니코드 문자열 unistr에 대한 정규화 형식(normal form) form을 반환합니다. form의 유효한 값은 ‘NFC’, ‘NFKC’, ‘NFD’ 및 ‘NFKD’ 입니다.
유니코드 표준은 정준 동등성(canonical equivalence) 및 호환 동등성(compatibility equivalence)의 정의를 기반으로, 유니코드 문자열의 다양한 정규화 형식을 정의합니다. 유니코드에서, 여러 문자를 다양한 방법으로 표현할 수 있습니다. 예를 들어, U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) 은 시퀀스 U+0043 (LATIN CAPITAL LETTER C) U+0327 (COMBINING CEDILLA) 로도 표현할 수 있습니다.
각 문자에는, 두 개의 정규화 형식이 있습니다: 정규화 형식 C와 정규화 형식 D. 정규화 형식 D(NFD)는 정준 분해라고도 하며, 각 문자를 분해된 형식으로 변환합니다. 정규화 형식 C(NFC)는 먼저 정준 분해를 적용한 다음, 미리 결합한 문자로 다시 조합합니다.
이 두 가지 형태 외에도 호환성 동등성(compatibility equivalence)을 기반으로 한 두 개의 추가적인 정규화 형식이 있습니다. 유니코드에서는 일반적으로 다른 문자와 통합될 수 있는 특정 문자들이 지원됩니다. 예를 들어, U+2160 (ROMAN NUMERAL ONE)은 사실 U+0049 (LATIN CAPITAL LETTER I)와 동일한 것입니다. 그러나 기존 문자 집합(예: gb2312)과의 호환성을 위해 유니코드에서 이를 지원합니다.
정규화 형식 KD(NFKD)는 호환성 분해를 적용하여 모든 호환성 문자를 그에 상응하는 것으로 교체합니다. 정규화 형식 KC(NFKC)는 먼저 호환성 분해를 적용한 후, 정준 결합을 수행합니다.
두 개의 유니코드 문자열이 정규화되고, 사람이 보기에 같아 보여도, 하나가 결합한 문자를 갖고 다른 것은 그렇지 않으면, 같다고 비교되지 않을 수 있습니다.
- unicodedata.is_normalized(form, unistr, /)¶
유니코드 문자열 unistr이 정규화 형식 form인지를 반환합니다. form의 유효한 값은 ‘NFC’, ‘NFKC’, ‘NFD’ 및 ‘NFKD’ 입니다.
Added in version 3.8.
- unicodedata.iter_graphemes(unistr, start=0, end=sys.maxsize, /)¶
자소 문자군(grapheme cluster)을 순회하는 반복자를 반환합니다. 선택적 인자인 start 가 있으면 해당 위치에서부터, end 가 있으면 해당 위치에서 멈추며 반복이 시작됩니다.
출력된 항목을 문자열로 변환하면 해당 자소 문자군에 대응하는 부분 문자열을 반환합니다. 그 속성의
start와end는 각각 자소 문자군의 시작과 끝을 나타냅니다.이 기능은 유니코드 표준 부록 #29인 “Unicode Text Segmentation” 에 정의된 확장 자소 문자군 규칙을 사용합니다.
Added in version 3.15.
또한, 이 모듈은 다음과 같은 상수를 제공합니다:
- unicodedata.unidata_version¶
이 모듈에 사용된 유니코드 데이터베이스의 버전.
- unicodedata.ucd_3_2_0¶
이것은 전체 모듈의 대부분 메서드를 가지고 있지만, 유니코드 데이터베이스 특정 버전(예: IDNA)을 요구하는 애플리케이션을 위해 대신 유니코드 데이터베이스 버전 3.2를 사용하는 객체입니다.
각주