Rhythmbox中文乱码解决办法

今天在网络上找到了一个比较好的解决Rhythmbox中文乱码的问题的方法 

进入你的音乐文件夹执行以下代码: 
mid3iconv -e GBK *.mp3 
若是没有提示多试几回,
有可能系统会提示:

python-mutagen没有安装。 
sudo apt-get install python-mutagen 安装。

输入如上的命令,回车。等安装好程序以后,再回到你的音乐文件夹,
输入命令: mid3iconv -e GBK *.mp3 回车。
而后从新打开rhythmbox,OK! 全部mp3都能正常显示了。python

 

mid3iconv 命令主要是将原来mp3音乐文件的ID3信息转换成了Unicode并用ID3v2的格式存回文件中。linux

----------------------------------------------------------------------------------------------ubuntu

另一个是用 Python 写的 “Mutagen”,目前最新版本 1.11,Ubuntu 7.04 源里也带有 1.10 版本的 Mutagen,能够用这个命令来安装:
sudo apt-get install python-mutagen

ps:安装 Quod Libet 和 Listen 都必须这个

使用方法:
mid3iconv -e gbk *.mp3

若是想转换当前目录下的全部 mp3 (包括子目录):
find . -iname "*.mp3" -execdir mid3iconv -e gbk {} \;

* 相信如今大陆绝大多数能找到的 mp3 标签都是以 GBK/GB18030 编码,使用 -e gbk 来处理就够了,固然你也可使用 -e gb18030 来处理。
* -e gbk 参数是表明把 GBK 编码的标签转换为 Unicode 编码,自己是 Unicode 编码的就不转换。若是须要转换其余编码的文件能够自行修改,如改成 Big5。
* 经测试,转换后为 2.4 版的 ID3v2,编码格式为 uft-16
* 不过它会同时用 Unicode 编码填满 D3v1, ID3v2, APEv2 标签,可是 ID3v1 又不支持中文的 Unicode 编码,因此转换后的 ID3v1 标签全是问号。因此最好加上 –remove-v1 参数,转换后删除 ID3v1 标签。
mid3iconv -e gbk --remove-v1 *.mp3网络

-----------------------------------------------------------------------------------编辑器

Rhythmbox Music Player是ubuntu自带的一款音乐播放器,功能还算比较强大,使用也简单。惟一的缺点就是中文显示乱码,缘由是因为编码不一样所致。工具

在这里介绍一个解决方法,修改变量。测试

在终端输入:网站

1vi~/.profile编码

在最后加入下面内容:spa

12exportGST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030exportGST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030

保存退出。

1source~.profile

重启Rhythmbox把歌曲从新导入便可显示正确。此方法在Ubuntu 10.04可行,其余版本应该问题也不大。

----------------------------------------------------------

相信不少朋友在Linux里播放mp3的时候,不论使用何种mp3播放器,或多或少都会遇到mp3标签乱码的问题。我通常在遇到mp3标签显示乱码的时候 都是使用Ex Falso(Quod Libet自带的一个mp3标签编辑器)来编辑一下标签,使个人播放器Quod Libet可以正常识别mp3标签。遇到转换歌曲少的时候,这样作没有什么问题,可是不少刚从Windows转到Linux上来的朋友就头大了,不少在 Windows下显示正常的mp3标签在Linux下全都乱套了。

咱们先来看看一些关于mp3的标签和编码的概念再来解决这个问题,你们就会比较清晰一些了。

mp3的标签类型和编码,如今主要存在这几种标准,ID3v一、ID3v2 2.三、ID3v2 2.四、APEv2。它们分别支持的编码为
ID3v1:只支持ISO--8859-1
ID3v2 2.3:ISO--8859-一、UTF-16
ID3v2 2.4:ISO--8859-一、UTF-1六、UTF-8
APEv2:UTF-8
咱们能够从上面的列表看出,mp3的标签类型和编码是多种多样,没有任何的规范可言的。ID3v1只支持ISO-8859-1这一种编码,它是不支持中文 的,因此通常来讲只有ID3v1标签的mp3在Linux上基本上也都是乱码的命,而ID3v2 2.3支持的格式增长了UTF-16,直到ID3v2 2.4版才开始支持UTF-8,可是 ID3v2的两个版本标准并无统一标签内容的编码。这里值得一提的是APEv2,它拥有最好的扩展性,它把编码格式统一为UTF-8,这样一来只要支持 APEv2读取的播放器播放带有APEv2标签的mp3就不会存在乱码问题。惋惜的是如今在国内的网站上下载的mp3基本上都没有APEv2标签,并且 Linux下也没有几个播放器支持APEv2标签的读取。(目前Gnome里的Rhythmbox是支持APEv2标签读取的,包括Quod Libet都不能够。)

一首mp3的标签是能够包含多种类型的,当一首mp3同时含有ID3v一、ID3v2 2.三、ID3v2 2.四、APEv2这4种类型中两种以上的时候,播放器对mp3标签的读取顺序通常是由上往下的,APEv2(前提是播放器支持此编码的读 取)---ID3v2---ID3v1。因此有时候会出现同一文件Rhythmbox显示标签正常(读取APEv2标签),其余播放器不正常的状况(读取 了ID3的标签)。

接着咱们说说在Linux系统里,为何全部的mp3播放器都会有乱码的问题,这是由于这些mp3播放器都是依赖系统内的libid3tag库彻底按照 ID3的标准来读取标签内容的。 它不论mp3是采起何种的标准的标签(ID3v一、ID3v二、APEv2),只要mp3的标签的内容是Unicode编码存储的,那么显示确定是正常的 (ID3v1的ISO-8859-1严格说是不支持中文,可是并非表明它不能存储中文)。若是遇到是以gbk、gb18030、big5等编码的中文内 容时,它仍是会把它当成ISO-8859-1来读取,乱码就成了必然。

说了这么多,如今问题就变得简单了,彷佛咱们只须要把mp3标签里面用gbk、gb18030、big5等编码存储的中文内容修改成Unicode编码,那么基本上全部Linux下的播放器都能正常识别mp3标签了。

关于mp3编码的转换,这里介绍一个工具----Mutagen,假如你安装了Quod Libet,那么这个包已经安装上去了。若是没有,执行下列命令就能够了。
sudo apt-get install python-mutagen

工具的使用方法
mid3iconv -e gbk *.mp3 #转换当前目录的mp3文件
find . -iname "*.mp3" -execdir mid3iconv -e gbk {} \;   #转换当前目录下全部mp3文件(包括子目录)

由于如今在网上下载的mp3绝大多数采用的都是gbk/gb18030编码,-e gbk 参数是表明把gbk编码的标签转换为Unicode编码,假如mp3标签自己是Unicode编码的就不转换。若是须要转换其余编码的文件能够自行修改 gbk参数,好比改成gb18030、big5。转换后为的mp3标签类型为ID3v2 2.4,编码格式为UTF-16。 

到了这一步以后,在Linux下使用全部播放器估计都没有什么问题了。

下面咱们回过头来看看,追溯一下根源,为何这些mp3原来在Windows下用Media Player怎么都是显示正常的呢?难道是Linux不如Windows吗?其实这个道理很简单,Firefox一样也打不开不少IE轻松就能打开的页 面,能说明Firefox不如IE吗?知情的人一看就明白了。Windows为了它所谓的兼容性,彻底无视规范,自定规则,貌似它的软件兼容性很好,其实 到头来,毁的仍是用户,从众多的不符合W3C规范的网页和如今铺天盖地的mp3标签为gbk/gb18030编码就可见一斑(反正我如今从网上下载的 mp3在Linux下就没有看到几个能正常显示的)。

能够告诉你们的是,利用上面的方法转换编码以后,这些mp3在Windows的文件属性菜单和Media Player里都没法正常显示标签,将会所有变为"?"。由于mid3iconv命令在转换编码时默认它会用Unicode编码填满D3v1, ID3v2, APEv2标签(前提是文件原本就含有这些类型的标签),可是 ID3v1 又不支持中文的 Unicode 编码。而Media Player彷佛只支持ID3v1的读取,固然你使用其余的支持ID3v二、APEv2类型读取的软件是没有问题的。

这里给你们推荐一个Windows下的mp3播放器---Foobar2000,在之前Windows的生涯中,我一直都是使用的这个播放 器,foobar2000支持全系列标签的读取,更值得称赞的是它默认使用ID3v2 2.4类型UTF-8编码的写入,彻底解决了编码方面的问题。 

给出一个我的提供的最终解决方案。
1.系统环境彻底就是Linux。
直接使用下面的这条命令,转换全部mp3文件,彻底无视Windows下的使用体验。
mid3iconv -e gbk *.mp3 

固然了,若是你为了不本身的mp3文件共享给Windows或者mp3的用户时,出现煞风景的"?",你能够添加一个--remove-v1这样一个参数来直接删除ID3v1标签,避免了文件属性和Media Player里出现"?"。
mid3iconv -e gbk *.mp3 --remove-v1

2.系统环境为Windows+Linux的双系统
推荐使用foobar2000播放器,对文件进行mp3标签的编辑,能够在foobar2000里选中全部mp3文件,进行文件标签重 写,foobar2000会把全部标签进行重写,使标签采用ID3v2 2.4类型UTF-8编码的写入,彻底解决Windows和Linux下mp3文件的编码问题。这也是比较完美的解决办法。

foobar支持三种标签编码方式 :ID3V1  ID3V2   APEv2将mp3文件用这三种编码都进行转化的话  window
和linux都不会出现乱码或者 ?

foobar编辑标签的功能很强大  标签名字两边加%   好比流派  %genre%  就能够读出来值

转自网络

相关文章
相关标签/搜索