MAC OSX 下 iTerm 2 加 Oh-My-Zsh 下远程ssh的乱码问题

来源:互联网 发布:f3飞控调参软件下载 编辑:程序博客网 时间:2024/06/16 20:46

最近远程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-8export 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--------------------

0 0