我的服务器是CentOS,从MacOS用iTerm连上去,终端里不能输入中文,复制粘贴也不行。导致很多时候很痛苦,MySQL查询输入中文条件都不行,有些中文文件也不能处理,有没有什么配置可以解决这个问题?
伊谢尔伦2017-04-17 11:11:41
首先,确认iTerm是用的utf-8编码,preferences->profiles->Terminal->Character Encoding是utf-8。
然后,在centos上,locale
看下编码,是否是UTF-8,不是就export LANG=en_US.UTF-8
,并且修改配置文件vim /etc/sysconfig/i18n
,修改LANG="en_US.UTF-8",使得重启生效。(zh_CN.UTF-8也可以)
巴扎黑2017-04-17 11:11:41
服务器是ubuntu,用Mac的iterm2 ssh连上去,终端显示中文乱码,也不能输入中文,然而本地终端可以显示和输入。
这种情况一般是终端和服务器的字符集不匹配,MacOSX下默认的是utf8字符集。
输入locale
可以查看字符编码设置情况,而我的对应值是空的。
因为我在本地和服务器都用zsh
替代了bash
,而且使用了oh-my-zsh
,而默认的.zshrc
没有设置为utf-8
编码,所以本地和服务器端都要在.zshrc
设置,步骤如下,bash对应.bash_profile
或.bashrc
文件。
1.在终端下输入
vim ~/.zshrc
或者使用其他你喜欢的编辑器编辑~/.zshrc
文件
<!--more-->
2.在文件内容末端添加:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
接着重启一下终端,或者输入source ~/.zshrc
使设置生效。
设置成功的话,在本地和登录到服务器输入locale
回车会显示下面内容。
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
这时,中文输入和显示都正常了。