解决UnicodeEncodeError: ‘ascii‘ codec can‘t decode byte in position

时间:2024-10-06 07:38:18

解决方法

        • 报错信息
        • 首先看一下Python默认的编码格式
        • 如果不是utf-8
          • Python2 的解决方法
          • Python3 的解决方法
          • Linux 的解决方法
        • 如果是utf-8






报错信息



首先看一下Python默认的编码格式



如果不是utf-8

Python2 的解决方法
# 在文件头部写入以下内容
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
  • 1
  • 2
  • 3
  • 4



Python3 的解决方法
# 在文件头部 写入以下任意一行内容
# coding: utf-8
# -*- coding: utf-8 -*- 
  • 1
  • 2
  • 3
'
运行



Linux 的解决方法
# 执行以下命令
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"

注:有的机器不是en_US.UTF-8, 执行locale -a 查询,换成自己的。
  • 1
  • 2
  • 3
  • 4
  • 5

export 之后 查询结果




如果是utf-8
# 找到自己的encodings目录
cd /usr/local/python/lib/python3.6/encodings/ 	
mv ascii.py ascii.py.bk 	# 备份
cp utf_8.py ascii.py		# 使用utf-8替换ascii
  • 1
  • 2
  • 3
  • 4