Menormalkan Unikod dalam Python: Mempermudahkan Perwakilan Unikod
Dalam Python, modul unicodedata menyediakan fungsi .normalize() untuk memudahkan perwakilan rentetan Unicode . Fungsi ini mengubah entiti Unicode terurai kepada bentuk komposit termudah mereka.
Pertimbangkan contoh berikut:
import unicodedata char = "á" print(len(char)) # Output: 1 [print(unicodedata.name(c)) for c in char] # Output: ['LATIN SMALL LETTER A WITH ACUTE'] char = "á" print(len(char)) # Output: 2 [print(unicodedata.name(c)) for c in char] # Output: ['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
Aksara "á" terdiri daripada dua titik kod: U 0061 (HURUF KECIL LATIN A) dan U 0301 (MENGABUKKAN AKSEN AKUT). Diuraikan, aksara ini muncul sebagai "á."
Untuk menormalkan rentetan ini, kita boleh menggunakan .normalize('NFC'), yang mengembalikan bentuk yang digubah:
print(ascii(unicodedata.normalize('NFC', '\u0061\u0301'))) # Output: '\xe1'
Sebaliknya, . normalize('NFD') mengembalikan bentuk terurai:
print(ascii(unicodedata.normalize('NFD', '\u00E1'))) # Output: 'a\u0301'
Borang normalisasi tambahan wujud untuk dikendalikan mata kod keserasian. NFKC dan NFKD menggantikan aksara keserasian dengan bentuk kanoniknya. Contohnya, U 2160 (ROMAN NUMERAL SATU) menormalkan kepada "I" menggunakan NFKC:
print(unicodedata.normalize('NFKC', '\u2167')) # Output: 'VIII'
Perlu ambil perhatian bahawa penormalan tidak selalu boleh diterbalikkan, kerana sesetengah aksara mungkin tidak mempunyai bentuk terurai yang unik.
Atas ialah kandungan terperinci Bagaimanakah Fungsi `unicodedata.normalize()` Python Memudahkan Perwakilan Unikod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!