---
title: 一键转换CUE文件编码
date: 2018-05-06T21:24:00+08:00
tags:
  - 技术

---

写完作业逛PT站发现 Beyond 专辑合集的 CD，想到网易云音乐里面没有一直很喜欢的 Beyond 的《长城》，遂让树莓派花了半个小时时间把它拖到了本地。

然后用VLC播放，发现歌曲列表中文全是乱码？？但播放一切正常，猜测是编码问题，搜索发现是因为GBK编码的文本在Linux下不被VLC识别，需要有一个编码转换的操作。

想起 PHP 有个 iconv 扩展，似乎内部是通过 iconv 类库实现的，大胆地猜测一下， Linux 下是否也有个调用 iconv 的程序呢？

尝试了一下，发现还真有！

查询了一下命令的使用方式，试着执行了 `iconv -f gbk -t utf-8 CDImage.cue`

![2264253657.png](https://cdn.zgq.me/assets/posts/2018/convert-cue-encoding/2264253657.png)

效果还是非常Nice的，接着把 iconv 的输出重定向 CDImage-UTF8.cue，命令如下：

```bash
iconv -f gbk -t utf-8 CDImage.cue > CDImage-UTF8.cue
```

再写段 Shell 脚本批量转换各个专辑的子文件夹内的 `CDImage.cue` 文件：

```bash
#!/bin/sh
find $1 -mindepth 1 -maxdepth 1 -type d | while read -r file
    do
      iconv -f gbk -t utf-8 "$file""/"CDImage.cue > "$file""/"CDImage-UTF8.cue
    done
```

Perfect

![3603237321.png](https://cdn.zgq.me/assets/posts/2018/convert-cue-encoding/3603237321.png)

扯了那么多，其实我想表达的只有一句话：Linux真好用~
