打印在Python中转义Unicode

Cee*_*man 5 python python-3.x

>>> s = 'auszuschließen'
>>> print(s.encode('ascii', errors='xmlcharrefreplace'))
b'auszuschließen'
>>> print(str(s.encode('ascii', errors='xmlcharrefreplace'), 'ascii'))
auszuschließen
Run Code Online (Sandbox Code Playgroud)

有没有更漂亮的方法来打印任何字符串b''

编辑:

我只是试图从Python中打印转义字符,我唯一的抱怨是当我这样做时,Python会添加"b"'.

如果我想看到像Windows 7这样的哑终端中的实际角色,那么我得到这个:

Traceback (most recent call last):
  File "Mailgen.py", line 378, in <module>
    marked_copy = mark_markup(language_column, item_row)
  File "Mailgen.py", line 210, in mark_markup
    print("TP: %r" % "".join(to_print))
  File "c:\python32\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2026' in position 29: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)

Mar*_*som 3

>>> s='auszuschlie\xc3\x9fen\xe2\x80\xa6'\n>>> s\n'auszuschlie\xc3\x9fen\xe2\x80\xa6'\n>>> print(s)\nauszuschlie\xc3\x9fen\xe2\x80\xa6\n>>> b=s.encode('ascii','xmlcharrefreplace')\n>>> b\nb'auszuschlie&#223;en&#8230;'\n>>> print(b)\nb'auszuschlie&#223;en&#8230;'\n>>> b.decode()\n'auszuschlie&#223;en&#8230;'\n>>> print(b.decode())\nauszuschlie&#223;en&#8230;\n
Run Code Online (Sandbox Code Playgroud)\n\n

您从 Unicode 字符串开始。对其进行编码以ascii创建bytes具有所需字符的对象。如果不将其转换回字符串,Python 不会打印它,并且默认转换会放入b和 引号。使用decode显式将其转换回字符串;默认编码是utf-8,并且由于您bytes只包含ascii其中的一个子集,utf-8所以保证可以工作。

\n