shell - MacOS用iTerm连接到Linux上,不能输入中文

 季幸静仪1255_189 发布于 2022-11-06 00:41

我的服务器是CentOS,从MacOS用iTerm连上去,终端里不能输入中文,复制粘贴也不行。导致很多时候很痛苦,MySQL查询输入中文条件都不行,有些中文文件也不能处理,有没有什么配置可以解决这个问题?

2 个回答
  • 问题:

    服务器是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"

    这时,中文输入和显示都正常了。

    2022-11-12 01:53 回答
  • 首先,确认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也可以)

    2022-11-12 01:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有