>>> 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)
>>> 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ßen…'\n>>> print(b)\nb'auszuschließen…'\n>>> b.decode()\n'auszuschließen…'\n>>> print(b.decode())\nauszuschließen…\nRun Code Online (Sandbox Code Playgroud)\n\n您从 Unicode 字符串开始。对其进行编码以ascii创建bytes具有所需字符的对象。如果不将其转换回字符串,Python 不会打印它,并且默认转换会放入b和 引号。使用decode显式将其转换回字符串;默认编码是utf-8,并且由于您bytes只包含ascii其中的一个子集,utf-8所以保证可以工作。