python3
报错:
报UncodeDecodeError:'gbk' codec can't decode byte的错误。(可能是因为有中文符号)
解决办法:
增加encoding='UTF-8'
f = open('fileName', encoding='UTF-8')
Python2中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。
解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 # coding=utf-8 就行了
若windows 命令提示符下输出中文字符串还会出现乱码,解决方法需要先使用 decode("utf-8") 转换成 utf-8 编码,然后使用 encode("gbk") 转换成 gbk 编码,才能在 windows 命令提示符下正常输出中文。
例如:
>>> # -*- coding: UTF-8 -*-
>>> s="我是中文 "
>>> print s.decode("utf-8").encode("gbk")
原因是 windows 命令提示符的显示编码为 gbk 编码。
在命令提示符下使用 chcp 查询编码。
- "活动代码页:936" 代表命令提示符的编码为 "gbk"
- "活动代码页:65001" 代表命令提示符的编码为 "utf-8"
Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。
注意:如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:
SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc4 in position 0: invalid continuation byte