作者:小马不小 | 来源:互联网 | 2023-09-03 08:50
最近远程SSH到服务器运行程序经常出现“UnicodeEncodeError:asciicodeccantencodecharacterinposition0:ordin
最近远程SSH到服务器运行程序经常出现 “UnicodeEncodeError: 'ascii' codec can't encode character in position 0: ordinal not in range(128)” 这个错误,起初以为是我用 Sublime Text 3文件设置的编码问题,后来看了编码也不是。之后用服务器本地的终端运行程序就没有出现这个错误,因此确定错误是出现在 MAC 这边的, 究竟 MAC 这边是Iterm的问题还是系统的问题需要确定一下,后来用系统自带的终端运行程序没有出现上面说的问题。
这下确定了是由于我使用的Iterm终端加 Oh-My-Zsh的编码问题,这下确定了之后就好办了。经过一堆搜索之后,确定了解决办法。
首先在终端输入,查看你的编码集,
locale
我的出来的是一堆,zh_CN.UTF-8 的编码。
vim ~/.zshrc
在文件的末尾加入:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
当然我直接更改了更多的省事。
export LANG=en_US.UTF-8
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"
export LC_MOnETARY="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_PAPER="en_US.UTF-8"
export LC_NAME="en_US.UTF-8"
export LC_ADDRESS="en_US.UTF-8"
export LC_TELEPHOnE="en_US.UTF-8"
export LC_MEASUREMENT="en_US.UTF-8"
export LC_IDENTIFICATION="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
再在终端下面输入:
locale
就可以看到字符编码更改了。中文输入和显示问题就解决了。
-----------------EOF--------------------