문자 체계
문자가 속한 문자 체계(예: 라틴, 키릴, 한자). Unicode 16.0은 168개의 문자 체계를 정의하며, Script 속성은 보안 및 혼합 문자 체계 감지에 핵심입니다.
What Is a Unicode Script?
A Unicode Script is a collection of characters used to write one or more human languages. Unlike blocks (which are contiguous code-point ranges), a script groups characters by their cultural and historical writing system: Latin, Arabic, Han, Devanagari, Georgian, and so on. Unicode 15.1 defines 161 scripts.
Every assigned character carries a Script property value. Characters not associated with any specific writing system receive the value Common (punctuation, digits, emoji) or Inherited (combining marks that inherit the script of their base character, such as combining diacritical marks).
Script vs. Block
The distinction is important in practice:
- The Latin script spans dozens of blocks: Basic Latin, Latin-1 Supplement, Latin Extended-A through Latin Extended-G, IPA Extensions, and more.
- The CJK Unified Ideographs block contains characters that belong to multiple scripts (Han, and historically Bopomofo components).
- The Letterlike Symbols block is
Script=Commonbecause those symbols are used across many writing systems.
# Python 3.14+ exposes Script via unicodedata
import unicodedata
# unicodedata.script() — available in Python 3.14
for char in ["A", "α", "ب", "あ", "中"]:
try:
script = unicodedata.script(char)
except AttributeError:
script = "(requires Python 3.14)"
print(f"{char} Script={script}")
# A Script=Latin
# α Script=Greek
# ب Script=Arabic
# あ Script=Hiragana
# 中 Script=Han
# On older Python, use the 'regex' package:
import regex
print(bool(regex.match(r'\p{Script=Latin}', 'A'))) # True
print(bool(regex.match(r'\p{Script=Arabic}', 'ب'))) # True
Script Extensions
Some characters are legitimately used in more than one script. The Script_Extensions property lists all scripts that use a given character. For example, U+0951 DEVANAGARI STRESS SIGN UDATTA appears in Devanagari, Bengali, Gujarati, and a dozen other Indic scripts—its Script is Inherited, but its Script_Extensions lists all the scripts that employ it. Implementations that need precise script-segmentation should consult Script_Extensions rather than Script alone.
# regex package supports Script_Extensions:
import regex
# Match a character used in the Devanagari OR Bengali script
pattern = regex.compile(r'[\p{Script_Extensions=Devanagari}\p{Script_Extensions=Bengali}]')
Quick Facts
| Property | Value |
|---|---|
| Unicode property name | Script |
| Short alias | sc |
| Number of scripts (Unicode 15.1) | 161 |
| Special values | Common, Inherited, Unknown |
| Python 3.14 | unicodedata.script(char) |
| Older Python | regex package, \p{Script=Latin} |
| Companion property | Script_Extensions (scx) |
| Spec reference | Unicode Standard Annex #24 (UAX #24) |
관련 용어
속성의 더 많은 용어
Unicode property (UAX#11) classifying characters as Narrow, Wide, Fullwidth, Halfwidth, Ambiguous, or …
Unicode property controlling how Arabic and Syriac characters connect to adjacent characters. …
Unicode property listing all scripts that use a character, broader than the …
정규 분해 과정에서 결합 기호의 순서를 제어하는 수치 값(0~254)으로, 어떤 결합 기호를 …
마침표, 쉼표, 대시, 따옴표 등 문어를 구성하고 명료하게 하는 데 사용되는 문자. …
지원하지 않는 프로세스에서 눈에 보이는 효과 없이 무시할 수 있는 문자로, 이형 …
문자가 처음 할당된 유니코드 버전. 시스템 및 소프트웨어 버전 간의 문자 지원 …
문자를 대문자, 소문자, 제목 대문자로 변환하는 규칙. 로케일에 따라 달라질 수 있으며(터키어 …
RTL 문맥에서 글리프를 수평으로 반전해야 하는 문자. 예: ( → ), [ …
문자를 구성 요소로 분해하는 매핑. 정규 분해는 의미를 보존(é → e + …