解决python3 Non-UTF-8 code starting with和UnicodeDecodeError: ‘utf-8’ codec can’t decode byte问题

错误一:

一开始出现了如下的问题:
在这里插入图片描述
因为写了很多中文注释,所以,就跑去第一行添加了编码形式:

#*encoding=utf-8

# -*- coding: utf-8 -*-  

错误二

按上面改完后,出现了如下的问题:
在这里插入图片描述
utf-8无法解码byte,意思应该是不能解码二进制文件。但是我这没有找到读取二进制文件的操作啊???网上找了很多解决方法都不管用。

  • 如果是读取二进制文件的话:
    就在读取的时候,把读取方式的‘r’,改成‘rb’就行了。
  • 如果不是读取二进制文件的话:
    网上还真没有这方面的解决办法。

后来就在运行的py文件上,将第一行代码

# -*- coding: utf-8 -*-  

改成了:

# coding=gbk

然后出错信息终于有指定的文件了,根据错误提示,去掉不符合的符号,就行了。
在这里插入图片描述
还没改成# coding=gbk时,出现的报错信息,都没有指定性,不知道到底是哪里错了,编码问题还是读取文件的问题?。
改成了# coding=gbk,错误信息就有提示是具体哪个py文件的第几行出现了错误,而且中文注释的问题也没有出现了。

错误三:

使用

# -*- coding: utf-8 -*-  

如果print中出现中文,也可能出现上面的错误时,只需把它改成gbk就行了。亲测有用。

UTF-8 and GBK 百度百科
字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。
至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。
GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。
GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)
UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。

总结:

网上有看到说,python3默认是自动支持中文字符编码,而python2需要添加# _*_ coding:utf-8_*_,在这里,如果使用python3时,出现了中文编码问题,添加# coding=gbk。python2的话,还是先试试__ coding:utf-8__ `,一般来说是没问题的。

注:具体为什么会这样呢,博主还在探索中,有哪位大佬知道的话,还请告知学习,感激不尽

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值