📝

全角英数字を半角に変換

に公開1

Discussion

bilzardbilzard

C形式とD形式は見た目からは違いが分からないようです。
以下のコードスニペットのようにバイナリで表現すると判別出来ました。
(C形式はアクセント文字を1つの文字として保持しているのに対し、D形式は元の文字とアクセントの2文字として保持しているようです)

import pandas as pd
import unicodedata as ud

df = pd.DataFrame({"text": ["é"]})
df["text"] = df["text"].apply(lambda x: ud.normalize("NFKD", x))
df["text"].apply(lambda x: x.encode()).head(1).item()
  • NFKD -> b'e\xcc\x81'
  • NFKC -> b'\xc3\xa9'