問題:
在Python 中,當轉換包含變音符號的字串時,例如“á, “我們觀察到不一致的情況。字串的長度為 1 或 2 個字符,取決於變音符號是表示為單一代碼點還是複合代碼點序列。
解:
確保一致標準化,使用 unicodedata 模組中的 .normalize() 函數。此函數將 Unicode 字串轉換為其標準形式組合 (NFC) 表示形式。 NFC 形式將「á」等複合字元組合成單一代碼點,消除了字串長度的不一致。
import unicodedata # Convert to NFC form to combine diacritics char = "á" normalized_char = unicodedata.normalize('NFC', char) print(len(normalized_char)) # Output: 1 print(unicodedata.name(normalized_char)) # Output: LATIN SMALL LETTER A WITH ACUTE
標準化形式:
unicodedata 模組提供不同的標準化形式,每個字元都有不同的表示方法:
其他注意事項:
以上是如何在 Python 中標準化 Unicode 字串以確保長度一致?的詳細內容。更多資訊請關注PHP中文網其他相關文章!