[英]How to convert a byte string with a unicode character to normal text in Python?
[英]How to convert a string to unicode/byte string in Python 3?
我知道这可行:
a = u"\u65b9\u6cd5\uff0c\u5220\u9664\u5b58\u50a8\u5728"
print(a) # 方法,删除存储在
但是,如果我有一个不以“ u”开头的JSON文件中的字符串( a = "\方\法\,\删\除\存\储\在"
),我知道如何在Python 2中制作它( print unicode(a, encoding='unicode_escape') # Prints 方法,删除存储在
)。 但是如何使用Python 3做到这一点?
同样,如果它是从文件加载的字节字符串,如何转换?
print("好的".encode("utf-8")) # b'\xe5\xa5\xbd\xe7\x9a\x84'
# how to convert this?
b = '\xe5\xa5\xbd\xe7\x9a\x84' # 好的
如果我理解正确,该文件将包含文字文本\方\法\,\删\除\存\储\在
(因此它是纯ASCII,但是带有反斜杠,并且所有描述Unicode序号的方式与在Python str
文字)。 如果是这样,有两种方法可以解决此问题:
mystr = mybytes.decode('unicode-escape')
从bytes
转换为str
解释转义 codecs
模块进行“文本->文本”转换(现在仅codecs
模块功能支持字节到字节和文本到文本编codecs
; bytes.decode
纯粹用于字节到文本和str.encode
纯粹是将文本转换为字节,因为通常在Py2中, str.encode
和unicode.decode
是一个错误,并且删除危险的方法可以使您更容易理解转换的方向。例如, decodedstr = codecs.decode(encodedstr, 'unicode-escape')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.