Mac パソコンで、ファイルやフォルダ名を扱う時の話。
名前に、濁点が含まれている時に、1文字ずつデリートしていくと、
濁点だけが消える時があって、ひらがなと別々になっていることがある。
1文字として扱わないと、検索文字としてヒットしなかったりするので、なんとかしたい。
def join_diacritic(text, mode="NFC"):
"""
基底文字と濁点・半濁点を結合
"""
# str -> bytes
bytes_text = text.encode()
# 濁点Unicode結合文字置換
bytes_text = re.sub(b"\xe3\x82\x9b", b'\xe3\x82\x99', bytes_text)
bytes_text = re.sub(b"\xef\xbe\x9e", b'\xe3\x82\x99', bytes_text)
# 半濁点Unicode結合文字置換
bytes_text = re.sub(b"\xe3\x82\x9c", b'\xe3\x82\x9a', bytes_text)
bytes_text = re.sub(b"\xef\xbe\x9f", b'\xe3\x82\x9a', bytes_text)
# bytet -> str
text = bytes_text.decode()
# 正規化
text = unicodedata.normalize(mode, text)
return text