如何将 rb 模式获得的二进制类型字符串转换为 Python 中的普通字符串?

JChat

我有一个看起来像这样的二进制类型字符串列表,它是通过在rb模式下读取文本文件获得的r由于可能混合了来自各种编码的字符,因此无法读取文件):-

new_list = [b'Vanessa Skarski\'s Account of Her Father\'s Death....', b'Hornslet wind-turbine collapse\r\nFrom Wikipedia' .....] 等等。

271列表中项目总数但我希望列表项是普通字符串而不是二进制字符串。我已经研究过使用new_list = [item.decode(encoding='utf-8') for item in new_list]

但它给UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 643: invalid start byte. 我只是想摆脱 b' 并获得正常的字符串。请问有什么想法吗?

编辑将字节转换为字符串中提到的解决方案没有解决我在最初的帖子中已经提到的问题。下面列出了我的 Python 版本,如果这与错误有任何关系的话

3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
诺克2

您拥有的字节对象不是以 UTF-8 编码的。编码取决于您文件的实际信息,除了首先创建文件并知道使用什么编码的人之外,没有人可以告诉您如何正确编码它们。

但是,鉴于上下文,流行的选择可能是:

  • latin1 (将始终解码,但可能对您没有意义)
  • cp1252 Windows 系统的流行选择

因此,例如:

new_list = [item.decode(encoding='latin1') for item in new_list]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python3中将“二进制字符串”转换为普通字符串?

Python 将二进制字符串转换为二进制整数

如何将二进制转换为字符串python?

在Python中,尝试将整数转换为字符并放入二进制“字符串”

如何将此二进制字符串转换为普通字符串?

Python将二进制列表转换为字符串

将 0 和 1 的字符串转换为它的二进制等效 python

Python 2.7-将base 64转换为二进制字符串

将二进制转换为字符串,然后使用 python 再次返回

将二进制数转换为字符串python

将字符串二进制转换为单个位python数据帧

将二进制字符串转换为IEEE-754单精度-Python

如何在python中将字符串转换为填充二进制文件?

如何在Python中将字符串转换为二进制格式

如何在python中将二进制字符串转换为双极性表示?

如何在Python 3中将二进制字符串转换为类似字节的对象?

如何将C二进制缓冲区转换为Python字符串中的十六进制表示形式?

Python:以十六进制创建的二进制转换为字符串:如何将其放回二进制?

在Python 3中将二进制字符串转换为字节数组

Python:从二进制转换为字符串

Python将二进制文件转换为字符串,同时忽略非ASCII字符

如何将二进制转换回普通字符串?

将字符串转换为二进制?

将二进制字符串转换为JavaScript中的字符串

如何将二进制整数转换为十六进制字符串?

如何将二进制字符串转换为十进制?

如何将二进制字符串值转换为十进制

如何将二进制字符串的文字字符串表示形式转换为二进制字符串?

将二进制字符串转换回普通字符串