Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Fungsi `unicodedata.normalize()` Python Memudahkan Perwakilan Unikod?

Bagaimanakah Fungsi `unicodedata.normalize()` Python Memudahkan Perwakilan Unikod?

DDD
Lepaskan: 2024-11-22 16:12:15
asal
301 orang telah melayarinya

How Does Python's `unicodedata.normalize()` Function Simplify Unicode Representations?

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']
Salin selepas log masuk

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'
Salin selepas log masuk

Sebaliknya, . normalize('NFD') mengembalikan bentuk terurai:

print(ascii(unicodedata.normalize('NFD', '\u00E1')))  # Output: 'a\u0301'
Salin selepas log masuk

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'
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan