解决各种mac终端乱码问题

解决mac终端的乱码问题大同小异, 一般而言, 本地不太可能出现乱码, mac一般会默认UTF-8, 如果出现了, 请确认编码是否被修改或没有读取本地编码. 而远程比较容易出现乱码, 主要原因是本地编码和远程不匹配, 具体解决方案如下

本地乱码

本地出现乱码, 那肯定是编码设置不正确, 可以通过命令查看

locale

如果使用的是iTerm2, 直接勾选即可

如果使用的是mac自带的Terminal, 也是同样解决方案, 勾选

一般默认情况, 使用mac自带Terminal本地是不会出现乱码的(但远程连接会有坑...)

远程乱码

如果使用上述方案解决本地乱码的问题, 那么远程会出现如下警告

这是因为远程Linux只有en_US.UTF-8zh_CN.UTF-8, 而mac只有UTF-8编码, 无法相互匹配. 其实也不影响远程编码,只是会出现这个警告, 最终会以远程服务器编码为准

如果解决上述警告问题, 只需要将上述的选项取消勾选, 即不将本地编码设置到远程, 会默认使用远程编码, 但这时本地又会出现乱码...

同时解决这个问题

编辑~/.profile~/.bash_profile, 如果文件不存在, 则创建

# 添加
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

重新打开终端

这样无论前面是否勾选, 都会强制将本地和远程设置成en_US.UTF-8, 即两者都不会出现乱码了

展示评论