Python字符串本身作为bytes进行解码的问题
XerCis 人气:0问题描述
字符串本身作为 bytes
s = '\xe4\xbd\xa0\xe5\xa5\xbd'
解决方案
s.encode('raw_unicode_escape').decode()
s = '\xe4\xbd\xa0\xe5\xa5\xbd' b = s.encode('raw_unicode_escape') s = b.decode() print(b) # b'\xe4\xbd\xa0\xe5\xa5\xbd' print(s) # 你好
参考文献
String to Bytes Python without change in encoding
Python字符串如何转为bytes对象?Python字符串和bytes类型怎么互转
在python之中字符串是最基础的数据类型之一,而它实际上是由多个字符所连接起来组成的序列,那么想要将字符串转为bytes字节串就需要使用到特殊的方法了。本篇文章会来给大家介绍一下python字符串是如何与bytes类型互转的,感兴趣的话就一起往下看看吧。
(1)字节指的是计算机上面用来表示存储值的一种计量单位,但是它放在python里面的话就是一种数据类型,这个数据类型的名称为bytes。可以将其看做是二进制字节格式的python中表示,它显示在python中的形式为字符串前加上小写字母b。
而要将一个字符串转为bytes类型需要使用到encode()函数,这个函数的意思就是编码。只需要在编码方法内传入表示中文的utf-8参数即可将其转为bytes对象,因为这个方法的本质作用就是把python数据转为可以通用的计算机数据格式,代码如下:
test_str = 'my name is HanMeimei' bytes_str = test_str.encode('utf-8') print(bytes_str) print(type(bytes_str)) # 结果 b'my name is HanMeimei' <class 'bytes'>
(2)那么要将bytes类型的对象转为python字符串类型的话也就是使用对应的方法,该方法就是decode(),翻译过来就是解码的意思。它在调用是也需要传入参数值utf-8,作用是将utf-8编码的bytes类型数据转为python类可以去直接解析和输出打印显示的字符串类型,代码示例如下所示:
test_str = bytes_str.decode('utf-8')
加载全部内容