问题:

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。

结果:

显示正常

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐