温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。
最近迷上了无损音乐,下载到手机发现 LRC 歌词都是乱码的。查看歌词文件编码是 GBK(Windows 简体中文版默认编码),但是手机音乐软件并不支持这个编码,所以需要将 GBK 转为支持的 UTF-8 格式。文件太多,考虑利用命令行批量转换,使用的是 iconv
命令。
安装
iconv
支持 Linux、Windows、macOS,其中 macOS 自带,部分 Linux 系统自带,若提示 command not found
则说明需要另外安装。
Linux
项目主页:libiconv - GNU Project - Free Software Foundation (FSF)
下载页:Index of /pub/gnu/libiconv(目前最新版是 1.16)。
root@fw:~# wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz && cd libiconv-1.16
root@fw:~# ./configure --prefix=/usr/local
root@fw:~# make && make install
root@fw:~# ln -s /usr/local/lib/* /usr/lib
Windows
项目主页:LibIconv for Windows
下载页:Complete package, except sources(目前最新版是 1.9.2)
1、下载可执行程序:
https://udomain.dl.sourceforge.net/project/gnuwin32/libiconv/1.9.2-1/libiconv-1.9.2-1.exe;
2、双击根据提示安装;
3、将 libiconv 安装目录加入到系统环境变量中,或执行 iconv 时使用完整路径。
使用
单个文件
直接显示到控制台
root@fw:~# iconv vircloud.net.lrc -f GBK -t utf-8
改变编码并保存到文件
root@fw:~# iconv vircloud.net.lrc -f GBK -t utf-8 -o vircloud.net.utf8.lrc
批量文件
比如嵌套目录下的文件:
//通过 find -type d(查找目录)命令,将当前 vircloud.net 文件夹里的目录递归的找出来,
然后通过 mkdir 命令,将找出来的目录递归地复制到 utf/vircloud.net 中
root@fw:~# find vircloud.net -type d -exec mkdir -p utf/{} \;
//通过 find -type f (查找文件)命令,将当前 vircloud.net 文件夹里的文件递归的找出来,
然后通过 iconv 命令,批量的转换为 utf-8 文件,并复制到 utf/vircloud.net 中
root@fw:~# find vircloud.net -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;
参考文章:
1、《Linux-iconv命令、并批处理将所有GBK文件转换为UTF8(18)》
2、《How to convert character encodings on Windows?》