问题:
Windows上使用pscp传包含中文文件夹及文件到Linux系统,在Linux系统上乱码。
解决:
在Linux服务器上借助convmv转换编码。
convmv工具下载:
centos系统安装convmv:
yum install convmv -y
也可以
wget http://j3e.de/linux/convmv/convmv-2.05.tar.gz
tar -zxvf convmv-2.05.tar.gz
cd convmv-2.05
make clean;
make install;
Ubuntu系统安装convmv:
sudo apt-get install convmv
convmv工具用法:
convmv -f 源编码 -t 新编码 [选项] 文件名
其中-f
:是源编码-t
:是目标编码-r
:是递归处理目录,递归转换目录下所有文件名--notest
:真正进行操作,请注意:默认是只打印转换后的效果,加这个选项才真正执行转换操作--list
:列出所有支持的编码-i
:交互模式(询问每一个转换,防止误操作)--unescape
:可以做一下转义,比如把 %20
变成空格,如果你不知道这是在做什么,就不要尝试了
注意:convmv只是文件名的编码转换,文件内容的编码不变。文件内容编码的转换,请使用 iconv 命令。
示例:
convmv -f GBK -t UTF-8 -r /data/www/test/* --notest
这是把/data/www/test/下的所有文件名的编码由GBK改成UTF-8。windows下默认的文件名的编码是GBK。
结果:
显示正常