Франциско Кузо правильно описывает вашу проблему. Если у вас есть контроль над строкой, вам следует избегать экранирования символов кавычки в вашей строке Unicode. Но я предполагаю, что вы на самом деле сами не писали эту строку как литерал, а скорее получили ее из внешнего источника (например, из файла).
Если в вашей строке Unicode уже есть дополнительные escape-символы, вы можете исправить проблему, сначала кодируя свои данные (используя str.encode
), затем удаляя дополнительные обратные слэши из уже закодированных символов, а затем, наконец, снова декодируйте:
str_unicode = "\\u201c借\\u201d东风" # or somefile.read(), or whatever
fixed = str_unicode.encode('unicode-escape').replace(b'\\\\', b'\\').decode('unicode-escape')
print(fixed) # prints “借”东风