python编码格式‘latin-1‘ codec can‘t encode character ‘\u79d2‘ in position 84: ordinal not in range(256)

python编码格式报错内容:‘latin-1’ codec can’t encode character ‘\uxxxx’ in position xx行: ordinal not in range(256)

背景:

代码是发起了一个requests请求,然后解析了返回内容之后,print进行打印输出,此时print报错,打印的内容里面有中文字符,所有就报错了。
(我曾经也在代码的py文件头上加上#coding=utf-8,但问题依旧没办法解决,可能是我的写法有问题吧,若有别的办法能解决这个编码问题,在评论分享一下,感觉大佬的支持。)

问题导致的原因:

系统的默认编码格式设置有问题,不是en_US.UTF-8

解决前的情况:

输入:locale
打印内容如下截图:
在这里插入图片描述

解决措施:

  • 修改了 /etc/default/locale 文件
    操作命令:sudo vim /etc/default/locale
    然后将所有的en_US全部改成en_US.UTF-8,新加了一行LC_ALL
    修改后的样子如下:
    在这里插入图片描述
  • 还修改了~/.bashrc文件
    操作命令:vim ~/.bashrc
    在整份文件内容的最底下新增两行:
    export LANG="en_US.UTF-8"
    export LC_ALL="en_US.UTF-8"
    修改后的样子如下:
    在这里插入图片描述
    修改完这份~/.bashrc文件后, 重新加载一下,执行命令:source ~/.bashrc

解决后的情况:
输入:locale
打印内容如下截图:
在这里插入图片描述
到此,问题就解决了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值