繁体   English   中英

如何在Python 3中将字符串转换为unicode /字节字符串?

[英]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文字)。 如果是这样,有两种方法可以解决此问题:

  1. 以二进制模式读取文件,然后调用mystr = mybytes.decode('unicode-escape')bytes转换为str解释转义
  2. 以文本模式读取文件,并使用codecs模块进行“文本->文本”转换(现在仅codecs模块功能支持字节到字节和文本到文本编codecsbytes.decode纯粹用于字节到文本和str.encode纯粹是将文本转换为字节,因为通常在Py2中, str.encodeunicode.decode是一个错误,并且删除危险的方法可以使您更容易理解转换的方向。例如, decodedstr = codecs.decode(encodedstr, 'unicode-escape')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM