\

PythonでUnicode正規化を行う場合、unicodedataという標準ライブラリが利用できます。このライブラリにはnormalizeという関数があり、これを使うと一発でUnicodeを正規化することができます。

Unicode正規化には、文字の構成要素をまとめて1つのコードで表すNFCと、構成要素を別々にコード化するNFDという正規化方式があります。その他にもNFKCNFKDという正規化方式が存在しますが、ここでは主にNFCNFDについて説明します。

例えば、「が」という平仮名を例に取ると、NFCではまとめて1つのコードで表しますが、NFDでは「か」と「゛」に分解したコードで表します。

import unicodedata

def tohex(s):
    return " ".join([f"{ord(ch):04x}" for ch in s])

tohex(unicodedata.normalize("NFC", "が"))  # '304c'
tohex(unicodedata.normalize("NFD", "が"))  # '304b 3099'

このように、NFCNFDを使ってUnicode文字を正規化することで、文字の使用が統一され、トラブルが少なくなるメリットがあります。

以上がPythonでのUnicode正規化の基本的な使い方となります。詳細な情報や他の正規化方式については、公式ドキュメントや各種リファレンスをご覧ください。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です