鱼C论坛

 找回密码
 立即注册
查看: 707|回复: 6

[已解决]文本读取问题

[复制链接]
发表于 2019-3-8 23:14:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Ryan_c 于 2019-3-8 23:20 编辑

当我的文本中是中文的时候

file.read()
会报错
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
而当文本文件中没有中文的时候就不报错,这是为什么
看小甲鱼教学视频上的案例中也是中文文本,为什么没有报错?

PS:
看到小甲鱼的文本文件打开后显示encoding='cp936'
而我的文件打开后显示encoding='US-ASCII'
最佳答案
2019-3-9 11:07:57
Ryan_c 发表于 2019-3-9 08:15
修改后可以了

这是否意味着我源文件的编码为encoding='utf-8',而python默认以encoding='US-ASCII'打 ...

当encoding=none的时候是默认以python当前的编码格式打开文件,你的文本不一定是utf-8编码,因为中文的编码也有其他的,但是用utf-8肯定可以打开中文文件。具体的常用编码可以看一下这篇文章:https://blog.csdn.net/ai_xao/article/details/79051534
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-8 23:39:00 From FishC Mobile | 显示全部楼层
你设置encoding='utf-8'应该就行了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-8 23:56:50 | 显示全部楼层
在代码开头加上一行#encoding:utf-8,如果不行的话要修改你的编辑软件的编码为utf-8,编程时涉及到的中文出错问题大部分都是编码问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-9 08:15:40 | 显示全部楼层
Sacura 发表于 2019-3-8 23:56
在代码开头加上一行#encoding:utf-8,如果不行的话要修改你的编辑软件的编码为utf-8,编程时涉及到的中文出 ...

修改后可以了

这是否意味着我源文件的编码为encoding='utf-8',而python默认以encoding='US-ASCII'打开了文件,所以导致了错误呢?但是我看open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)默认为encoding=None,这究竟是什么原因?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-9 08:16:21 | 显示全部楼层
拉了盏灯 发表于 2019-3-8 23:39
你设置encoding='utf-8'应该就行了,

谢谢回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-9 11:07:57 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
Ryan_c 发表于 2019-3-9 08:15
修改后可以了

这是否意味着我源文件的编码为encoding='utf-8',而python默认以encoding='US-ASCII'打 ...

当encoding=none的时候是默认以python当前的编码格式打开文件,你的文本不一定是utf-8编码,因为中文的编码也有其他的,但是用utf-8肯定可以打开中文文件。具体的常用编码可以看一下这篇文章:https://blog.csdn.net/ai_xao/article/details/79051534
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-9 12:08:19 From FishC Mobile | 显示全部楼层
本帖最后由 Sacura 于 2019-3-9 12:22 编辑

你可以试试把你的python改回ASCII,然后读中文文本时在open中加上encoding='utf-8',也可以打开。不过当你的代码中出现中文时会报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 21:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表