유니코드 표준은 수 많은 구조화된 텍스트 파일의 형태로 하나의 완전한 데이터베이스를 제공한다.
이 데이터베이스엔 코드 포인트를 문자명으로 매핑하는 테이블뿐만 아니라 각 문자에 대한 메타데이터 및 각 문자의 연관 방법을 담고 있다.
str의 isidentifier(), isprintable(), isdecimal(), isnumeric() 메서드는 이 데이터베이스를 사용하고, str.casfold() 메서드도 유니코드 테이블의 정보를 사용한다.
unicodedata 모듈에는 문자 메타데이터를 반환하는 함수들로, 표준에 정의된 공식 몇잉, 결합 문자인지 연부, 사람이 인식하는 기호의 숫자값 등을 반환한다
"""
unicodedata.name()과 unicodedata.numeric()을 str의 isdecimal(), isnumeric()메서드와 함께 사용하는 방법
"""
import unicodedata
import re
re_digit = re.compile(r'\d')
sample = '1\xbc\xb2\u0969\u136b\u216b\u2466\u2480\u3285'
for char in sample:
print('U+%04x' % ord(char),
char.center(6)
're_dig' if re_digit.match(char) else '-',
'isdig' if char.isdigit() else '-',
'isnum' if char.isnumeric() else '-',
format(unicodedata.numeric(char), '5.2f'),
unicodedata.name(char),
sep='\t')
unicodedata 모듈이 제공하는 여러 함수를 사용했고, 더 많은 함수가 있다. unicodedata 모듈에 대한 표준 라이브러리 문서를 참조하여 새로운 추세에 대해 간략히 살펴보면서 문자열과 바이트의 비교에 대한 설명한다.