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
打印内容如下截图:
在这里插入图片描述
到此,问题就解决了。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐