如何解决Python编码问题:UnicodeDecodeError: 'gbk' codec can't decode?
- 内容介绍
- 文章标签
- 相关推荐
本文共计210个文字,预计阅读时间需要1分钟。
在读取yaml文件数据时,出现UnicodeDecodeError错误,通常是因为文件编码不是UTF-8,而是GBK编码。以下是修改后的代码,使用`open`函数的`encoding`参数来指定文件编码为GBK:
pythonimport yaml
def test_yaml(): with open('..\\test_python\\yaml_data.yaml', encoding='gbk') as f: print(yaml.safe_load(f))
在获取yaml文件数据时,提示:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multibyte sequence
import yamldef test_yaml():
with open('../test_python/yaml_data.yaml') as f:
print(yaml.safe_load(f))import yaml
def test_yaml():
# 声明编码:encoding='utf-8'
with open('../test_python/yaml_data.yaml',encoding='utf-8') as f:
print("使用:encoding='utf-8'")
print(yaml.safe_load(f))
# 以二进制格式打开一个文件用于只读
with open('../test_python/yaml_data.yaml','rb') as f:
print("使用:'rb'")
print(yaml.load(f))
本文共计210个文字,预计阅读时间需要1分钟。
在读取yaml文件数据时,出现UnicodeDecodeError错误,通常是因为文件编码不是UTF-8,而是GBK编码。以下是修改后的代码,使用`open`函数的`encoding`参数来指定文件编码为GBK:
pythonimport yaml
def test_yaml(): with open('..\\test_python\\yaml_data.yaml', encoding='gbk') as f: print(yaml.safe_load(f))
在获取yaml文件数据时,提示:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multibyte sequence
import yamldef test_yaml():
with open('../test_python/yaml_data.yaml') as f:
print(yaml.safe_load(f))import yaml
def test_yaml():
# 声明编码:encoding='utf-8'
with open('../test_python/yaml_data.yaml',encoding='utf-8') as f:
print("使用:encoding='utf-8'")
print(yaml.safe_load(f))
# 以二进制格式打开一个文件用于只读
with open('../test_python/yaml_data.yaml','rb') as f:
print("使用:'rb'")
print(yaml.load(f))

