通过命令行将 ANSI/GBK 编码文件批量转为 UTF-8 编码

小助手读文章 00:00 / 00:00

温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。

最近迷上了无损音乐,下载到手机发现 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?


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 命令行教程shellpowershellansi编码转换utf8批量libiconv 的文章

 本文最后更新于 2021/02/04 11:36:22,可能因经年累月而与现状有所差异

 引用转载请注明: VirCloud's Blog > 经验 > 通过命令行将 ANSI/GBK 编码文件批量转为 UTF-8 编码