In Japanese, there's the dakuten and han-dakuten diacritic for voiced and semi-voiced syllables, see https://en.wikipedia.org/wiki/Dakuten_and_handakuten
There's at least two dakuten characters and two handakuten characters as listed on https://en.wikipedia.org/wiki/List_of_Japanese_typographic_symbols
>>> standalone_dakuten = "\u309B"
>>> combining_dakuten = "\u3099"
>>> combining_dakuten == standalone_dakuten
False
If we compare a character that already has the dakuten, e.g. が
and combining the non-voiced syllable with the combining dakuten, i.e. か
+ "\u3099"
, it doesn't yield the same character as が
although when printed it looks the same. In code:
>>> print("が") # char with dakuten implicitly.
が
>>> print("か" + "\u3099") # char with combining dakuten.
が
>>> "が" == "か" + "\u3099"
False
>>> ord("が")
12364
>>> ord("か" + "\u3099")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 2 found
My question is whether there's a function that maps the dakuten combined characters "か" + "\u3099"
to implicitly dakuten-ed character "が"
?