Попробуйте вместо этого:
>>> print u'\u2033'.translate({0x2033:u'd'})
d
Поскольку вы использовали u'\2033'
вместо u'\u2033'
, в результате получилось два символа: u'\203'+u'3'
.Попытка распечатать это дала исключение, потому что кодировка вашего терминала не поддерживает символ u'\203'
(который совпадает с u'\x83'
).
Также обратите внимание на разницу между 2033
и 0x2033
словарь: escape-последовательность \u<i>xxxx</i>
принимает свое значение в шестнадцатеричном формате, поэтому вам потребуется 0x2033
для ее сопоставления.
Что касается названия вашего вопроса, string.translate
(функция translate
вМодуль 1019 *) не поддерживает словарь в качестве параметра, но вызов .translate
для самой строки Unicode (как вы это делали в теле вопроса) работает.