Alias nama
Nama alternatif untuk karakter, karena nama Unicode tidak dapat diubah sesuai kebijakan stabilitas. Digunakan untuk koreksi, singkatan, dan figmen.
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 |
Istilah Terkait
Lainnya di Properti
Rentang titik kode berurutan yang dinamai (misalnya, Basic Latin = U+0000–U+007F). Unicode …
Karakter yang tidak memiliki efek visual dan dapat diabaikan oleh proses yang …
Pemetaan karakter ke bagian-bagian komponennya. Dekomposisi kanonik mempertahankan makna (é → e …
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. …
Properti yang menentukan bagaimana karakter berperilaku dalam teks dua arah (LTR, RTL, …
Klasifikasi setiap titik kode ke dalam salah satu dari 30 kategori (Lu, …
Nilai numerik (0–254) yang mengontrol pengurutan tanda penggabung selama dekomposisi kanonik, menentukan …
Dua urutan karakter yang secara semantik identik dan harus diperlakukan sama. Contoh: …
Dua urutan karakter dengan konten abstrak yang sama yang mungkin berbeda dalam …