Я полагаю, что проблема, с которой вы столкнулись, заключается в том, что unicode_escape
устарела в Python 3.3, и, похоже, предполагается, что ваш код является 'latin-1' из-за того, что он является исходным кодеком, используемым в функции unicode_excape
..
Глядя на документацию по python для кодеков , мы видим, что Encoding suitable as the contents of a Unicode literal in ASCII-encoded Python source code, except that quotes are not escaped. Decodes from Latin-1 source code. Beware that Python source code actually uses UTF-8 by default.
, который говорит нам, что unicode_escape
предполагает, что ваш текст соответствует ISO Latin-1.Таким образом, если мы запустим ваш код с кодировкой latin1, мы получим эту ошибку:
s.encode('latin1')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2514' in position 12: ordinal not in range(256)
И ошибка Unicode-символа равна '\u2514'
, которая при преобразовании равна '└'
, самый простой способ выразить это: символ не может бытьиспользуется в строке Latin-1, поэтому вы получаете другой символ.
Я также считаю правильным указать, что в вашей строке есть '\\n'
, а не просто '\n'
, дополнительный обратный слеш означает этот символне возврат каретки, но вместо этого он игнорируется, обратный слеш указывает на игнорирование '\n'
.Возможно, попробуйте не использовать \\n
...