比较 unicode 字符与组合变音符号

Comparing unicode characters with combining diacritics

    Dictionary={
         "b":"कू", 
         "c":"कु",
         "x":"श",

         "A":"क"


def marathi(message):
    dec=''
    for letter in message:  
        for key, value in MARATHI.items():
             if letter == value:
               dec+=key
    print(dec) 



    returning_key_for_value_String='शकुकू'

    marathi(returning_key_for_value_String)
    #output=xAA

虽然运行函数从字典的值中取回键,该函数将“कू”的键提供为“A”,但它应该返回“b”。它看起来该函数仅采用“क”,因此没有出现预期的输出。

您需要将字符串分成字素簇,因为它实际上包含字母和非间距组合标记:

>>> list('शकुकू')
['श', 'क', 'ु', 'क', 'ू']

regex 模块可以通过 \X 模式提取它们:

>>> import regex
>>> regex.findall(r'\X', 'शकुकू')
['श', 'कु', 'कू']

然后,您可以将这些单独的字符中的每一个与您的参考词典进行比较。