問題:
Python で、"á, 「私たちは矛盾を観察しています。文字列の長さは、発音記号が単一のコード ポイントとして表されるか、複合コード ポイントのシーケンスとして表されるかによって、1 文字または 2 文字になります。
解決策:
一貫性を確保するには正規化には、unicodedata モジュールの .normalize() 関数を使用します。この関数は、Unicode 文字列を標準形式合成 (NFC) 表現に変換します。 NFC 形式は、「á」のような複合文字を 1 つのコード ポイントに結合し、文字列の長さの不一致を排除します。
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 中国語 Web サイトの他の関連記事を参照してください。