今天老王在将一个网站的数据从阿里云上传到搬瓦工时,在 Mac 上用 iTerm2 远程连接搬瓦工 VPS 后,发现一个中文名的文件乱码,一开始以为是服务器语言包的问题,尝试装了中文支持,但是中文文件名还是乱码。后来发现有个警告:warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory,解决了这个警告后,中文名就能正常显示了。
一、问题描述
本地 MacBook,远程工具是 iTerm2,在远程连接到搬瓦工 VPS 后(CentOS 7 系统),完成网站数据迁移后,尝试打开网站,发现出现了很多 404 错误,看了下服务器上的对应目录,发现所有以中文命名的文件全部都是乱码,后来尝试用 touch 命令新建一个中文名的文件,居然也是问号(?)乱码。
按照网上教程尝试在搬瓦工 VPS 上安装了一些中文包支持,但是文件名中的中文还是乱码。
二、问题解决
后来注意到在用 iTerm 连上搬瓦工 VPS 时,会有一个警告:
warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
网上搜了这个警告的解决办法,基本有 2 个。
1、解决办法 1(老王尝试了没有成功)
在 Mac 终端编辑 ~/.zshrc
文件,在文件末添加两行代码:
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
然后 source ~/.zshrc
使设置生效。
2、解决办法 2
在 Mac 终端编辑 /etc/ssh/ssh_config
,在最后一行找到 SendEnv LANG LC_*
,注释掉这一行。
之后重启 iTerm2,再远程连接搬瓦工 VPS,发现这个警告不见了,中文文件名乱码的问题也解决了!