问题描述
我编写了一个用于翻译/音译波斯语字符的 Python 代码。这是翻译表的一大块:
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 表从 unicode ordinals(即整数)映射到序数、字符串或无。使用 str.maketrans
适当地转换字符串到字符串的映射:
>>> string
'ث'
>>> str.maketrans(dictionary)
{1579: 's̱',1580: 'ǧ'}
>>> string.translate(str.maketrans(dictionary))
's̱'