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
打印内容如下截图:
到此,问题就解决了。