dai*_*yue 0 python decode utf-8 python-3.x
我试图读取一个文件并将字符串转换为UTF-8字符串,以删除utf-8文件字符串中的一些非字符,
file_str = open(file_path, 'r').read()
file_str = file_str.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误,
AttributeError: 'str' object has no attribute 'decode'
Run Code Online (Sandbox Code Playgroud)
更新:我按照答案的建议尝试了代码,
file_str = open(file_path, 'r', encoding='utf-8').read()
Run Code Online (Sandbox Code Playgroud)
但它没有消除非utf-8字符,所以如何删除它们?
删除.decode('utf8')电话.您的文件数据已经被解码,因为在Python 3中的open()文本模式(默认)调用返回的解码数据到Unicode字符串一个文件对象给你.
您可能确实希望将编码添加到open()调用中以使其显式化.否则Python使用系统默认值,可能不是UTF-8:
file_str = open(file_path, 'r', encoding='utf8').read()
Run Code Online (Sandbox Code Playgroud)
例如,在Windows上,默认编解码器几乎肯定会出现UTF-8数据错误,但在尝试读取文本之前,您不会看到问题.你会发现你有一个Mojibake,因为UTF-8数据是用CP1252或类似的8位编解码器解码的.
有关详细信息,请参阅open()功能文档.
| 归档时间: |
|
| 查看次数: |
4448 次 |
| 最近记录: |