如何在python3中将字符串转换为unicode/byte字符串?

2024-09-27 01:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这很管用:

a = u"\u65b9\u6cd5\uff0c\u5220\u9664\u5b58\u50a8\u5728"
print(a) # 方法,删除存储在

但是如果我有一个JSON文件中的字符串不是以“u”(a = "\u65b9\u6cd5\uff0c\u5220\u9664\u5b58\u50a8\u5728")开头的,那么我知道如何在python2(print unicode(a, encoding='unicode_escape') # Prints 方法,删除存储在)中生成它。但是如何使用python3呢?在

类似地,如果是从文件加载的字节字符串,如何转换它?在

^{pr2}$

Tags: 文件方法字符串jsonunicodeprintpython2u6cd5
1条回答
网友
1楼 · 发布于 2024-09-27 01:30:03

如果我理解正确的话,文件包含文本\u65b9\u6cd5\uff0c\u5220\u9664\u5b58\u50a8\u5728(因此它是纯ASCII,但是有反斜杠和所有描述Unicode序号的东西,就像在Python str文本中一样)。如果是这样,有两种方法可以处理:

  1. 以二进制模式读取文件,然后调用mystr = mybytes.decode('unicode-escape')将解释转义的bytes转换为{}
  2. 以文本模式读取文件,并使用codecs模块进行“text->;text”转换(现在只有codecs模块函数支持字节到字节和文本到文本编解码器;bytes.decode纯粹用于字节到文本,str.encode纯粹用于文本到字节,因为在Py2中,str.encode和{}是一个错误,删除危险的方法使人们更容易理解转换的方向),例如decodedstr = codecs.decode(encodedstr, 'unicode-escape')

相关问题 更多 >

    热门问题