背景

由于服务器环境默认字符编码为gbk,当执行程序后生成的日志文件名的字符编码为gbk的,但是程序读取日志的时候用的utf-8编码,当日志文件名包含中文时就不能找到日志,于是可以用Convmv来批量转换文件名的字符编码

下载地址

源代码

https://www.j3e.de/linux/convmv/

目前最新版本: https://www.j3e.de/linux/convmv/convmv-2.05.tar.gz

安装包(rpm等)

https://pkgs.org/download/convmv?

安装

源代码

解压后直接make即可

rpm等安装包安装方法:rpm -ivh convmv-xx.rpm

使用方法

convmv -f GBK -t UTF-8 *.log
# 不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest
convmv -f GBK -t UTF-8 --notest *.log
# -f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。
# -r递归使用方法
convmv -f GBK -t UTF-8 -r ./ --notest *.log

其他参数说明: https://linux.die.net/man/1/convmv