Python unicode 翻译保持输入不变

Python unicode translation leaves input unchanged

我写了一个 python 代码,应该是 translate/transliterate 波斯语字符。这是翻译的一部分 table:

dictionary = {
'\u062B': 's̱',
'\u062C': 'ǧ',
}

'\u062B'是“ث”应该翻译成“s̱”

但是当我 运行 以下内容时:

string = ('\u062B')
print("Original string:", string)

string = ('\u062B')
print("Translated string:", string.translate(dictionary))

我的原始字符串和翻译后的字符串相同:

Original string: ث
Translated string: ث

所以翻译没有发生。我做错了什么?

str.translate method table maps from unicode ordinals (i.e. integers) to ordinals, strings, or None. Use str.maketrans 适当地转换字符串到字符串的映射:

>>> string
'ث'
>>> str.maketrans(dictionary)
{1579: 's̱', 1580: 'ǧ'}
>>> string.translate(str.maketrans(dictionary))
's̱'