解决文件名mp3标签和文本文件内容的乱码问题:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
无编辑摘要
 
(未显示15个用户的30个中间版本)
第1行: 第1行:
从windows转移到ubuntu的用户,常常会发现自己在windows在创建/下载/保存的文件经常性出现乱码问题(kubuntu出现问题的可能性更高一些)。而使用默认播放器打开以往的音乐文件(mp3等)时,出现乱码的机会更是接近100%。出现这个问题是因为文件或是文件标签编码并不是系统默认的UTF8,而windows系统默认使用的是GBK。只要将文件编码做一下转换就解决乱码的问题。
从Windows迁移到Ubuntu的用户,往往会发现自己在Windows在创建/下载/保存的音乐文件出现乱码问题。出现这个问题的原因:一些音乐文件的标签的编码不是Ubuntu使用的UTF-8(一种Unicode编码,适用于所有语言),而是简体中文Windows系统使用的是GBK(一种中国国家标准编码,只适用于简体中文)。所以,只要将标签的编码做一下转换,或者修改音乐播放器默认的标签读取编码,就能解决乱码的问题。


这些问题的解决方案在[http://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills&variant=zh-cn#.E8.BD.AC.E6.8D.A2.E6.96.87.E4.BB.B6.E5.90.8D.E7.94.B1GBK.E4.B8.BAUTF8 ubuntu使用技巧]中已被收录。  
命令行解决方案在[http://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills&variant=zh-cn#.E8.BD.AC.E6.8D.A2.E6.96.87.E4.BB.B6.E5.90.8D.E7.94.B1GBK.E4.B8.BAUTF8 Ubuntu使用技巧]中已被收录。  


==工具==
==转换标签编码法==


===图形界面的工具===
===使用图形界面的EasyTAG工具===
安装EasyTAG:
sudo apt-get install easytag
* 启动EasyTAG
* 找到首选项--ID3标签设置--修改下面两项:


[http://nlyrics.7do.net/konvid/ 小K]是一个 Linux 环境下音乐 mp3 文件歌名乱码编码转换软件,用以解决音乐文件标签信息乱码的问题,目前最新版本为 0.1。软件基于 Qt4 库,大小仅 64 kb,有中文界面。
*读取ID3标签时用的字符集,请选择 简体中文GBK (繁体的应该是BIG5)。
* 写入ID3标签时用的字符集,ID3v2和ID3v1.x都选成UTF-8。(注:依照[http://linux-wiki.cn/wiki/Mp3%E6%A0%87%E7%AD%BE%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90%E4%B8%8E%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88 Linux Wiki的原理分析],Id3v1写为GBK编码更合适)


使用方法:
*然后重启EasyTAG,
* 然后在主界面双击你的歌曲目录,保存,以后你的mp3在播放器都能正常显示中文了。


# 导入希望转换编码的文件。可以导入多个文件,或者导入一个目录。
*该选择和该修改的地方
# 选择目标编码,直到转换成功。
    [[File:Easytag_screenshot.png]]
# 写入文件。注意,此操作不可逆。
  对照这个
 
    [[Image:easytag-首选项.png]]
软件依赖以下库:
 
* libqt4-core
* libqt4-gui
* libtag.so.1 (Ubuntu Kubuntu 已自带)
 
安装方法:
 
sudo apt-get install libqt4-core libqt4-gui


===基于命令行的工具===
===基于命令行的工具===


*需要用到的工具
*需要用到的工具
   sudo apt-get install convmv iconv python-mutagen
   sudo apt-get install convmv iconv python-mutagen
要转换文件编码请先进入要转换文件的目录  
要转换文件编码请先进入要转换文件的目录  


*转换文件名由GBK为UTF8
*转换文件名由GBK为UTF8
  convmv -r -f cp936 -t utf8 --notest *
*转换文件内容由GBK到UTF8
  iconv -f gbk -t utf8 $i > newfile


   convmv -r -f cp936 -t utf8 --notest --nosmart *
*转换 mp3 标签编码(下面方法会导致windows和部分移动设备无法正确识别mp3标签,建议使用[http://code.google.com/p/mp3tagiconv/ mid3tagiconv])
   find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
'''注意:保证自己对需转换文件有写权限'''
 
==修改播放器默认编码法==
使用工具转换标签的编码对于已有的文件可以解决乱码问题,但是对于新下载的音乐文件,可能需要再次进行转换。所以解决乱码问题的另一种思路是修改音乐播放器默认的标签读取编码。


*转换文件内容由GBK到UTF8
以用GStreamer作为后端的播放器Rhythmbox为例,可以在系统环境变量(/etc/profile)或用户的环境变量(~/.profile)中增加如下的内容:


   iconv -f gbk -t utf8 $i > newfile
   export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030
  export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030


*转换 mp3 标签编码
其他播放器可以参考[https://wiki.archlinux.org/index.php/Arch_Linux_Localization_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#MP3.E6.96.87.E4.BB.B6.E6.A0.87.E7.AD.BE.E4.B9.B1.E7.A0.81 ArchWiki的一个词条]中的其他指导。


  find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
注:因为修改系统环境变量对系统影响较大,用户可以考虑只修改~/.profile。


'''注意:保证自己对需转换文件有写权限'''
[[Category:多媒体]]
[[Category:中文]]

2015年11月7日 (六) 00:12的最新版本

从Windows迁移到Ubuntu的用户,往往会发现自己在Windows在创建/下载/保存的音乐文件出现乱码问题。出现这个问题的原因:一些音乐文件的标签的编码不是Ubuntu使用的UTF-8(一种Unicode编码,适用于所有语言),而是简体中文Windows系统使用的是GBK(一种中国国家标准编码,只适用于简体中文)。所以,只要将标签的编码做一下转换,或者修改音乐播放器默认的标签读取编码,就能解决乱码的问题。

命令行解决方案在Ubuntu使用技巧中已被收录。

转换标签编码法

使用图形界面的EasyTAG工具

安装EasyTAG:

sudo apt-get install easytag 
  • 启动EasyTAG
  • 找到首选项--ID3标签设置--修改下面两项:
  • 读取ID3标签时用的字符集,请选择 简体中文GBK (繁体的应该是BIG5)。
  • 写入ID3标签时用的字符集,ID3v2和ID3v1.x都选成UTF-8。(注:依照Linux Wiki的原理分析,Id3v1写为GBK编码更合适)
  • 然后重启EasyTAG,
  • 然后在主界面双击你的歌曲目录,保存,以后你的mp3在播放器都能正常显示中文了。
  • 该选择和该修改的地方
   
 对照这个
   

基于命令行的工具

  • 需要用到的工具
 sudo apt-get install convmv iconv python-mutagen

要转换文件编码请先进入要转换文件的目录

  • 转换文件名由GBK为UTF8
 convmv -r -f cp936 -t utf8 --notest *
  • 转换文件内容由GBK到UTF8
 iconv -f gbk -t utf8 $i > newfile 
  • 转换 mp3 标签编码(下面方法会导致windows和部分移动设备无法正确识别mp3标签,建议使用mid3tagiconv
 find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;

注意:保证自己对需转换文件有写权限

修改播放器默认编码法

使用工具转换标签的编码对于已有的文件可以解决乱码问题,但是对于新下载的音乐文件,可能需要再次进行转换。所以解决乱码问题的另一种思路是修改音乐播放器默认的标签读取编码。

以用GStreamer作为后端的播放器Rhythmbox为例,可以在系统环境变量(/etc/profile)或用户的环境变量(~/.profile)中增加如下的内容:

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

其他播放器可以参考ArchWiki的一个词条中的其他指导。

注:因为修改系统环境变量对系统影响较大,用户可以考虑只修改~/.profile。