还不够好 发表于 2020-10-25 10:03:44

出现 Unicode解码时的错误 怎么处理


import easygui as g
f = open ("file.txt")
g.textbox("文件【file.txt】的内容如下:",text = f.read())

hrp 发表于 2020-10-25 10:08:49

import easygui as g

# 添加 encoding 参数,使用正确编码打开文件
# 不一定是 'utf-8',主要看你的 file.txt 文件是以什么编码保存的
f = open("file.txt", encoding='utf-8')
g.textbox("文件【file.txt】的内容如下:", text=f.read())

kogawananari 发表于 2020-10-25 10:39:53

需要使用chardet模块来判断到底是什么编码 特别是爬虫得到的文本 根本就是混合的 不止一种编码 gbk和gb2312也是略有区别

聂嘉辉 发表于 2020-10-25 10:45:10

本帖最后由 聂嘉辉 于 2020-10-25 10:46 编辑

试试:
with open('file.txt', 'r', encode = 'utf8') as f:
    g.textbox("文件【file.txt】的内容如下:",text = f.read())
记得最佳答案

刘定坚 发表于 2021-5-4 22:46:56

hrp 发表于 2020-10-25 10:08


我在开头已经用了# -*- coding:utf-8 -*-这个,但是with open('1.txt') as f:这样就会报错Unicode解码错误。如果是with open('1.txt',encoding='utf-8') as f:这样就可以运行。不知道为什么?

hrp 发表于 2021-5-4 23:04:25

刘定坚 发表于 2021-5-4 22:46
我在开头已经用了# -*- coding:utf-8 -*-这个,但是这样就会报错Unicode解码错误。如果是这样就可以运行 ...

开头用# -*- coding:utf-8 -*-只是告诉python解释器要用utf-8来解码你的源代码文件而已,跟open函数用什么编码打开文件无关。

刘定坚 发表于 2021-5-8 22:00:39

hrp 发表于 2021-5-4 23:04
开头用# -*- coding:utf-8 -*-只是告诉python解释器要用utf-8来解码你的源代码文件而已,跟open函数用什 ...

明白了,谢谢{:5_109:}
页: [1]
查看完整版本: 出现 Unicode解码时的错误 怎么处理