【发布时间】:2019-02-06 23:21:23
【问题描述】:
免责声明,我已经做了很长时间的研究来单独解决这个问题,但我在这里发现的大多数问题都与 Python 2.7 相关,或者不能解决我的问题
假设我有以下内容(该示例来自 BeautifulSoup 文档,我正在尝试解决一个更大的问题):
>>> markup = "<h1>Sacr\xc3\xa9 bleu!</h1>"
>>> print(markup)
'Sacré bleu!'
对我来说,标记应该分配给一个字节,所以我可以这样做:
>>> markup = b"<h1>Sacr\xc3\xa9 bleu!</h1>"
>>> print(str(markup, 'utf-8'))
<h1>Sacré bleu!</h1>
是的!但是我该如何在 "<h1>Sacr\xc3\xa9 bleu!</h1>" 之间进行转换,这是错误的 b"<h1>Sacr\xc3\xa9 bleu!</h1>" ?
因为如果我这样做:
>>> markup = b"<h1>Sacr\xc3\xa9 bleu!</h1>"
>>> bytes(markup, "utf-8")
b'<h1>Sacr\xc3\x83\xc2\xa9 bleu!</h1>'
你看到了吗?它免费插入\x83\xc2。
>>> print(bytes(markup))
TypeError: string argument without an encoding
【问题讨论】:
标签: python-3.x utf-8 python-3.5