ssh执行远程python脚本utf-8的问题,报UnicodeEncodeError: 'ascii' codec can't encode characters

需要ssh远程执行一个python脚本,在一个节点上是正常的,环境是centos7,bash。
在另一台节点上居然报错了,环境是centos7,zsh,报错信息如下:

ssh root@xx.xx.xx.xx "python3 /data/scripts/demo.py"
UnicodeEncodeError: 'ascii' codec can't encode characters in position 144-150: ordinal not in range(128)

好明显是编码问题,检查了python文件的编码,文件头有coding utf-8,编码也是utf-8

#!/usr/bin/python3
# coding=utf-8

接着检查两个环境的env,locale,都是一样

[root@xx ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

那问题出在哪里,随后google之,有文章说要加PYTHONIOENCODING=utf-8,即执行命令如下:

ssh root@xx.xx.xx.xx "PYTHONIOENCODING=utf-8 python3 /data/scripts/demo.py"

问题解决!:)

相关链接
https://stackoverflow.com/questions/17374526/unicodeencodeerror-when-using-python-from-ssh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容