- 做课表小程序的时候遇到了一个问题:在windows系统的pycharm和cmd都能正常运行的python代码,在linux服务器上跑时却报错:
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal not in range(128),如图所示: - 一开始以为是utf-8的编码问题,尝试了很多诸如encode,decode的方法,但一直没解决
- 最后忽然发现是print()函数处报了ascii编码的错,我明明将字符串已经编码成了utf-8,为什么它还会报ascii码的错呢?最后发现是linux系统下python3输出函数自带的编码问题:
- 查看linux环境下python3输出函数的编码:
- 查看win10环境下python3输出函数的编码:
- 解决办法
重新定义标准输出,即在代码中添加 :
- 参考博客:
https://blog.csdn.net/TH_NUM/article/details/80685389