小鸡炖葫芦 发表于 2020-10-7 21:35:23

文件如果有中文用open为什么打不开

如果txt文档中存在中文汉字,为什么用open 会报错啊 报错如下:
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
    list1 = list(f)
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb9 in position 9: illegal multibyte sequence



这是我txt文件中的内容:
啦啦啦12838193821832sssssdadjo1212031
bjhbkhkhk



感谢大佬解答!!!!

昨非 发表于 2020-10-7 21:39:44

f = open(file_name,"r",encoding='UTF-8')
换种编码试试

小鸡炖葫芦 发表于 2020-10-7 21:43:29

昨非 发表于 2020-10-7 21:39
换种编码试试

为啥加了一个encoding呢

昨非 发表于 2020-10-7 21:44:30

小鸡炖葫芦 发表于 2020-10-7 21:43
为啥加了一个encoding呢

选择编码方式,你这个属于gbk编码的问题

小鸡炖葫芦 发表于 2020-10-7 21:44:43

昨非 发表于 2020-10-7 21:39
换种编码试试

确实好使了!!!
可是为什么呢

昨非 发表于 2020-10-7 21:46:36

小鸡炖葫芦 发表于 2020-10-7 21:44
确实好使了!!!
可是为什么呢

编码不同,就相当于文件读取方式不同,我说的不太准确,建议好好听课

昨非 发表于 2020-10-7 21:47:26

小鸡炖葫芦 发表于 2020-10-7 21:44
确实好使了!!!
可是为什么呢

https://www.runoob.com/python3/python3-func-open.html
看看这个,满意的话给个最佳吧

夏娜酱 发表于 2020-10-8 09:02:01


GBK主要用于中文编码,包含全部中文字符,utf8包含全世界所有国家需要用到的字符;
你这个报错不是因为有中文字符,而是因为有英文字符,GBK编码是中文专用的,没有英文字符,所以建议你改成utf-8
页: [1]
查看完整版本: 文件如果有中文用open为什么打不开