笨方法学python3 ex20

逐字输入ex20的代码之后,在Windows Shell中运行程序时我又报错!!!又是与ex17相同的报错。嗨呀,真生气!

Traceback (most recent call last):
  File "ex20.py", line 18, in <module>
    print_all(current_file)
  File "ex20.py", line 6, in print_all
    print(f.read())
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequencee sequence

又是这个!UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequencee sequence

其实就是自己小白…在我百度&Google之后…其实问题很简单嘛。

问题之源:我是用Windows自带的记事本来建立txt文件的【明明大佬在书的开头就介绍了一堆文本编辑器,但我还是下意识使用记事本建立txt文件的,思维定式啊】

使用Windows自带的记事本建立txt文件这就带来一个问题,记事本建立的txt文件的默认编码是ANSI啊!!!但是python只认得UTF-8!

好的,找到了问题所在,只要改一下编码模式就可以了,你以为这样就结束了嘛?!Too young!

在使用UTF-8的编码模式保存txt文件后,使用python读取时,又出现了以下问题!

PS C:\Users\dell\exercise> python ex20.py test.txt
First let's print the whole file:

锘縏o all the people out there.
I say I don't like my hair.
I need to shave it off.

Now let's rewind,kind of like a tape.
Let's print three lines:
1 锘縏o all the people out there.

2 I say I don't like my hair.

3 I need to shave it off.

所有的T变成了"锘縏"。

嗨呀,好累呀,又出现乱码了。

于是又是一顿百度&Google

http://www.cnblogs.com/zhbzz2007/p/4283194.html大佬给出了答案。

在windows平台下,使用系统的记事本以UTF-8编码格式存储了一个文本文件,但是由于Microsoft开发记事本的团队使用了一个非常怪异的行为来保存UTF-8编码的文件,它们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,所以我们就会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报出语法错误,等等。

所以大佬给出的建议就是,要用专业的文本编辑器生成txt文件呀!!!

Visual Studio Code和Notepad++都可以的,只要不是Windows自带的记事本就可以。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值