无知的 tonyseek

Yet Another Seeker

音乐播放器 Rhythmbox 乱码问题

音乐播放器乱码应该是 Linux 下常见的问题,主要原因是 Windows 下的音乐 ID3 中文部分是以 GBK 家族编码的,而 Linux 下则统一为 UTF-8 编码。

Google 一下,看到这篇文章 解决ubuntu下音乐播放器Rhythmbox乱码问题 提出的两个方法应该是我们常见的。第一个方法是修改音乐的 ID3 信息,这个方法非常糟糕——因为如果把 ID3 改成 UTF-8 编码,回到 Windows 就会乱码了,这是拆东墙补西墙的做法;第二个方法思路可行,修改 Linux 环境变量,让播放器先尝试 GBK 编码,再尝试 UTF-8,但是我更喜欢另一种风格的做法。

我们知道,在 Linux 的环境变量中, /usr/local/bin/ 在默认情况下拥有比 /usr/bin/ 更高的搜寻优先级。我们利用这一点可以给 rhythmbox 添加附加 shell 来修改环境变量,这样不用改动 .profile 影响系统全局。

sudo touch /usr/local/bin/rhythmbox 新建出我们的替代品,输入内容如下:

/usr/local/bin/rhythmbox
 #!/usr/bin/env sh

 export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030
 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030

 /usr/bin/rhythmbox $@

然后给其添加可执行权限: sudo chmod +x /usr/local/bin/rhythmbox 关掉 Rhythmbox,重新打开,删掉所有歌曲列表,重新导入,乱码问题解决。

Comments