Python печатает строку с экранирующими символами Юникода

#python #unicode

#python #юникод

Вопрос:

Я пытаюсь напечатать буквальный экранирующий символ Юникода «Pedro Le u00F3n». Когда я делаю следующее:

 test = "Pedro Leu00F3n"
print(test)

>>> Pedro León
 

Как я могу заставить ее выводить «Pedro Le u00F3n»?

Ответ №1:

Кодируйте в байты с помощью unicode_escape кодировки и декодируйте обратно:

 >>> out = test.encode('unicode_escape').decode()
>>> out
'Pedro Le\xf3n'
>>> print(out)
Pedro Lexf3n
 

Обратите внимание, что это xXX экранирование, а uXXXX не экранирование, поскольку оно меньше U FF . Для сравнения:

 >>> 'u0080'
'x80'
 

Ответ №2:

Вам нужно использовать необработанные строки. Просто используйте r перед строкой:

 test = r"Pedro Le\u00F3n"
print(test)
 

Вывод: Pedro Le\u00F3n

Комментарии:

1. Почему вы поставили двойную обратную косую черту?

Ответ №3:

попробуйте это

 test = "Pedro Le\u00F3n"
print(test)
 

это происходит потому, что в python есть много «специальных символов, таких как» ‘n’ и более, и если вы хотите его игнорировать, вам нужно написать вместо