이름 별칭
안정성 정책에 따라 유니코드 이름은 변경할 수 없으므로, 문자의 대체 이름을 제공합니다. 수정, 약어, 잘못된 명칭 수정에 사용됩니다.
What Are Name Aliases?
A Name Alias is an alternate, officially recognized name for a Unicode character. While every assigned character has a formal Name property (or a generated name like <CJK UNIFIED IDEOGRAPH-4E2D>), some characters have additional aliases for several reasons:
- Correction: The formal name contains a historical error that cannot be changed (Unicode names are immutable once published), so a corrected name is provided as a
Correctionalias. - Control code names: Characters in the C0 and C1 control ranges (U+0000–U+001F, U+007F–U+009F) have formal names like
NULLor no readable name at all; their familiar abbreviations (NUL,LF,CR,DEL) are registered asControlaliases. - Abbreviations: Widely used short names like
ZWSP(for ZERO WIDTH SPACE) orBOM(for BYTE ORDER MARK). - Figments: Names that appeared in published Unicode data due to errors and were then retracted.
The BOM Case Study
One of the most instructive examples is U+FEFF:
- Formal name:
ZERO WIDTH NO-BREAK SPACE - Name alias (Abbreviation):
ZWNBSP - Name alias (Alternate):
BYTE ORDER MARK - Name alias (Abbreviation):
BOM
The name ZERO WIDTH NO-BREAK SPACE is the historical, immutable name. The BOM function—indicating byte order in UTF-16/UTF-32 streams—was added later, but Unicode names cannot be changed. The alias BYTE ORDER MARK documents the actual common use.
import unicodedata
# unicodedata.name() returns the formal name only
print(unicodedata.name("\uFEFF"))
# ZERO WIDTH NO-BREAK SPACE
# unicodedata.lookup() works with both formal names and aliases
bom_by_alias = unicodedata.lookup("BYTE ORDER MARK")
print(f"U+{ord(bom_by_alias):04X}")
# U+FEFF
# Control character aliases
nul = unicodedata.lookup("NUL") # U+0000
cr = unicodedata.lookup("CARRIAGE RETURN") # U+000D
lf = unicodedata.lookup("LINE FEED") # U+000A
print(ord(nul), ord(cr), ord(lf))
# 0 13 10
Alias Types
The Unicode Standard defines five alias types:
| Type | Description | Example |
|---|---|---|
correction |
Fixes a published name error | U+FE18 → correct name |
control |
C0/C1 familiar abbreviation | U+0009 → TAB |
figment |
Erroneous name, retracted | U+E000 entry |
alternate |
Alternative widely-used name | U+FEFF → BYTE ORDER MARK |
abbreviation |
Short form of the name | U+FEFF → BOM |
Quick Facts
| Property | Value |
|---|---|
| Unicode property name | Name_Alias |
| Short alias | na1 (for first alias) |
Python unicodedata.lookup() |
Supports aliases since Python 3.x |
Python unicodedata.name() |
Returns formal name only |
| Immutability of formal Name | Names cannot change; aliases provide corrections |
| Spec reference | Unicode Standard Annex #44, NameAliases.txt |
관련 용어
속성의 더 많은 용어
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 문맥에서 글리프를 수평으로 반전해야 하는 문자. 예: ( → ), [ …
문자가 속한 문자 체계(예: 라틴, 키릴, 한자). Unicode 16.0은 168개의 문자 체계를 …