查看文章 |
Rhythmbox是Linux下面比较流行的音乐播放器。可惜中文歌曲常常会遇到乱码问题,令人比较苦恼。究其原因,是由于歌曲的ID3v1、v2和APEv2标签中使用了中文GBK编码所致。由于Rhythmbox以及Linux中的其他一些播放器按照标准的Unicode字符集读取,从而出现错误。 目前网上的常见解决办法主要有以下几类: 1、将MP3文件标签编码转换为Unicode:使用mid3iconv或ID3iconv将MP3文件标签转换为Unicode。但由于mid3icov会将ID3v1标签移除(使用--remove-v1)或者强制将ID3v1标签也转换成Unicode(使用--force-v1参数),这样,Linux下面的问题倒是解决了,但是在Windows下甚至一些便携MP3播放器下,由于ID3v1不按照Unicode读取,会出现歌曲名不识别或者乱码的问题。尤其是Windows XP,似乎只是别ID3v1信息。 2、一个不用修改标签编码的方法,原理应该就是让播放器先试着用GBK解码标签,然后用UTF-8解码,其实就是调整解码顺序啦。具体的做法就是在/etc/profile.d/文件夹底下创建一个shell,内容也很简单: export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030 文件名随便,例如叫gst.sh就行了。注销后再登录使sh脚本生效。重要的一步是必须让Rhythmbox重新读取音乐文件的信息,我曾经试着先把音乐文件夹移动到别处,启动播放器后原来记录的文件信息确实不见了。但是,当我把文件夹移动回来后,依然是乱码!这并不是说这个方法没用,而是Rhythmbox偷懒了,它发现原来数据库记录的文件又出现了,结果就使用了原来的数据库。正确的方法是在家目录下删除Rhythmbox的数据库信息,可以通过删除~/.local/share/rhythmbox下的所有文件来实现。删除后重启播放器,标签就不会乱码了:-) 3、使用插件使播放器支持GBK字符集标签读取。
在Windows中下载安装Tag&Rename软件。 1、首先对Tag&Rename选项进行设置,在Options->Options中,Tags选项卡下的Write Unicode Data into ID3v2 Tags。 2、选择有乱码问题的MP3文件,选择Tools->MP3 Tag's Syncronization Wizard,或者直接按F11键,选择Copy info from ID3v1 to ID3v2 Tags。之后也可以执行Copy info from ID3v2 to ID3v1 Tags,以保证ID3v1信息的完整。至于先后顺序,视情况而定。 3、这样,歌曲在Windows和Linux下面,甚至便携MP3播放器都可以正常显示了。 |





