我正在使用一个返回字节字符串的库,我需要将其转换为字符串.

尽管我不确定有什么不同--如果有区别的话.

推荐答案

假设Python3(在Python2中,这一区别不太明确)-字符串是一个字符序列,即unicode codepoints;它们是一个抽象的概念,不能直接存储在磁盘上.不出所料,字节串是一系列字节-can存储在磁盘上的东西.它们之间的映射是encoding-有相当多的这样的(并且有无限多是可能的)-您需要知道在特定情况下应用哪一个才能进行转换,因为不同的编码可能会将相同的字节映射到不同的字符串:

>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-16')
'蓏콯캁澽苏'
>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-8')
'τoρνoς'

一旦知道要使用哪个,就可以使用字节字符串的.decode()方法从中获取正确的字符串,如上所述.为了完整性起见,字符串的.encode()方法与此相反:

>>> 'τoρνoς'.encode('utf-8')
b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'

Python相关问答推荐

我们可以在apps.py?中使用Post_Save信号吗

是否有使用纯霍夫曼编码的现代图像格式?

查找3D数组中沿一个轴的相同值序列的长度(与行程长度编码相关)

将C struct 的指针传递给Python中的ioctel

使用Python Cerberus初始化一个循环数据 struct (例如树)(v1.3.5)

是什么导致对Python脚本的jQuery Ajax调用引发500错误?

如何在PIL、Python中对图像应用彩色面膜?

Pandas 填充条件是另一列

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

Pystata:从Python并行运行stata实例

韦尔福德方差与Numpy方差不同

SQLGory-file包FilField不允许提供自定义文件名,自动将文件保存为未命名

从收件箱中的列中删除html格式

如何制作10,000年及以后的日期时间对象?

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

NumPy中条件嵌套for循环的向量化

driver. find_element无法通过class_name找到元素'""

为什么Django管理页面和我的页面的其他CSS文件和图片都找不到?'

合并与拼接并举

如何获取Python synsets列表的第一个内容?