比较 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', 'शकुकू')
['श', 'कु', 'कू']
然后,您可以将这些单独的字符中的每一个与您的参考词典进行比较。
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', 'शकुकू')
['श', 'कु', 'कू']
然后,您可以将这些单独的字符中的每一个与您的参考词典进行比较。