Linux系统下Mp3标签乱码问题的分析和解决

时间:2022-12-03 09:53:54 作者:食人族酋长 综合材料 收藏本文 下载本文

“食人族酋长”通过精心收集,向本站投稿了7篇Linux系统下Mp3标签乱码问题的分析和解决,下面是小编精心整理后的Linux系统下Mp3标签乱码问题的分析和解决,希望能够帮助到大家。

篇1:Linux系统下Mp3标签乱码问题的分析和解决

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

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

mp3的标签类型和编码,现在主要存在这几种标准,ID3v1、ID3v2 2.3、ID3v2 2.4、APEv2。它们分别支持的编码为

ID3v1:只支持ISO--8859-1

ID3v2 2.3:ISO--8859-1、UTF-16

ID3v2 2.4:ISO--8859-1、UTF-16、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同时含有ID3v1、ID3v2 2.3、ID3v2 2.4、APEv2这4种类型中两种以上的时候,播放器对mp3标签的读取顺序一般是由上往下的,APEv2(前提是播放器支持此编码的读取)---ID3v2---ID3v1。所以有时候会出现同一文件Rhythmbox显示标签正常(读取APEv2标签),其他播放器不正常的情况(读取了ID3的标签)。

接着我们说说在Linux系统里,为什么所有的mp3播放器都会有乱码的问题,这是因为这些mp3播放器都是依赖系统内的libid3tag库完全按照ID3的标准来读取标签内容的。 它不论mp3是采取何种的标准的标签(ID3v1、ID3v2、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的读取,当然你使用其他的支持ID3v2、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文件的编码问题。这也是比较完美的解决办法。

篇2:win7系统下汉字乱码怎么解决

步骤一:打开win7系统的运行窗口,然后输入regedit的指令回车打开win7系统的注册表编辑器。

步骤二:在win7系统的注册表编辑器里面,我们按照这个顺序“HKEY_LOCAL_MACHINE System CurrentControlSet Control FontAssoc”打开所需要编辑的Aossiated CharSet项,然后在右边窗口的空白处点击右键新建一个名为ANSI(00)的“字符串值”,然后在编辑窗口里面输入Yes,

步骤三:然后依次在注册表中输入键值名GB2312(86),WEM(FF),SYMBOL(02),数值依次编辑为Yes、Yes、on。

篇3:完美解决Windows7系统乱码问题

综合了网上各种观点,加上亲身实验,在本人的机子中完美解决乱码问题,

注意这几个方面:

一、就是控制面板中,系统时区、语言等的设定。这些大家都会设了,不过设了以后乱码还是有的,但这步骤还是必须的。

二、坛子中流传最广的解决方法:

打开注册表键 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFontAssocAssociated Charset

确定下面这两项的值是 YES.如果没有则自己创建。

“ANSI(00)”=“YES”

“OEM(FF)”=“YES”

在一些版本中,此法可解决一些乱码问题,如迅雷、QQ旋风等的大部份乱码可以解决,

但是仍有部分软件存在乱码,比如光影魔术手就几乎是面目全非了,还有佳能相机的相片导入程序,也是全部的问号。何况在较新版本中,系统本身都已经把这两项设置成YES了,但还是有乱码。要解决这些,还得做第三步ghost xp sp3。

三、昨日偶然发现的

打开注册表键 HKEY_CURRENT_USERControl PanelInternational,将右侧:“Locale”=“00000409″ 改成 ”Locale“=”00000804″

改了要重启。

只要做了这三个步骤,你的Win7基本可以摆脱乱码的困扰,中英文都适用windows xp系统下载!

篇4:如何解决office乱码问题

一、消灭Word中的乱码

由于Windows 2000/XP都是以Unicode编码作为内码,因此不同的文字在这些操作系统下也不会出现乱码,作为目前国内占有率最高的文档处理工具,特别是文档中有图文混排的内容时,出现乱码的几率相当高,首先你必须确定出现乱码字符的文档格式能够被Word所支持,这可以从“文件格式”下拉列表中查看,然后考虑采取对应的补救措施:

1.查看文件格式

如果你试图用Word打开不支持的文件格式,那么当然会出现乱码,例如PDF格式的文档应该是使用Adobe Reader打开,比较常见的还有WPS文档,虽然WPS对Word文档的兼容性做得比较出色,但Word并没有考虑对WPS的兼容性,如果你使用的是高版本的Microsoft Word更是如此,

如果Word支持某种格式的文档,那么可以在Word的“打开”对话框中直接打开,否则即使选择“所有文件”显示出相应的文档,我们也会看到图2所示的对话框,即使在这里强行选择打开文档,也会出现根本无法识别的乱码,实际上这是不同格式之间的文档在转换过程中出现的乱码。

对策:在Word中出现乱码,最大的可能是不同格式的文档转换,这是根本的原因,因此请尽可能使用专用的工具打开相应的文档。

2.文件损坏与否

导致文件损坏的原因有很多,例如意外断电、非法关机、病毒破坏等,此时同样会出现乱码字符,如果事先没有进行备份,那么这是最令人痛苦的。

对策:如果文档的乱码字符并不太多,那么将这些字符删除后重新保存即可,当然删除之前请首先另存到其他的路径下进行备份,或者尝试将文档在其他的计算机上打开,当然这种方法在大多数情况下都是无效的。也可以尝试将*.doc格式的文档重新保存为其他格式,然后再次转换回来:*.doc→*.rtf→*.doc

如果这一招仍然无法解决问题,可以尝试将文件转换为*.txt,然后再转换为*.doc,当然在转换过程中文档中的图像信息会相应丢失,不过这也是在所难免的。

还有一种方法,就是在打开文档时选择“从任意文件中恢复文本”,当然这种方法只能说找回多少就是多少,权且将死马当成活马医吧。

3.是否软件冲突

如果你安装过微软的AppLocale,这是官方发布的一款内码转换工具,很多玩繁体中文游戏的朋友都会安装,但由于某些不可知的原因会导致产生乱码。

对策:请尝试卸载AppLocale,或者使用WordFix进行修复,当然并非100%有效,下载地址是down1.tech.sina.com.cn/download/download/10390.shtml,如果使用上面的方法后仍然没有解决乱码的问题,那么最好的解决办法是彻底卸载Microsoft Office后重新安装。

4.键盘布局的设置

也许你不会注意到键盘布局的问题,但事实上如果你由于某些原因,在控制面板中将键盘布局设置为非中文的键盘布局,那么在将网页中的文字直接复制到Word中并不会出现问题,但如果是直接保存为文本文件,然后再在Word中打开,就非常容易出现乱码字符,

对策:进入控制面板,重新设置为“中文-中国”的键盘布局,并且将其设置为默认值。

二、消灭Outlook Express中的乱码

虽然国内用户使用Foxmail的比较多,但对于企业用户而言,功能强大的Outlook Express或Outlook无疑是提高工作效率的重要武器之一。如果在收发邮件的往来过程中,时不时的冒出几封乱码邮件,那可就惨了,特别是重要的工作邮件,后果更是不堪设想。

1.编码设置的问题

默认设置下,Outlook Express对于待发邮件默认使用简体中文(GB2312)编码,这样在向港澳台地区和国外发送邮件时,由于接收方的编码设置方面的原因,或者所使用的操作系统不支持简体中文,那么在阅读邮件时就容易出现乱码。

对策:选中乱码邮件,从“查看”菜单中选择“编码→简体中文(GB2312)”,一般情况下都可以解决问题,或者尝试将乱码邮件转发到另一个邮箱,也许在某些场合下能够解决问题。

2.服务器的原因

很多架设在国外的邮件服务器,并不支持ASCII编码,对于中文双字节或二进制格式的邮件,会将每个字符的第8位过滤掉,这样会造成邮件的头信息失真或损坏。

对策:从“工具”菜单下打开“选项→阅读”窗口,如图3所示,单击“字体”按钮,选择“简体中文(GB2312)”编码,注意将其设置为默认值,接下来单击“国际设置”按钮,勾选“为接收的所有邮件使用默认编码”,确认后退出。

3.病毒的破坏

很多时候,其实你所看到的乱码邮件大多数是缘自病毒的破坏,或者是本机感染了病毒,或者是发件人那边的机器感染病毒后自动发送的垃圾邮件。

对策:将乱码邮件保存为*.eml格式的文件,然后用记事本打开,在Outlook Express中选择一个正常邮件,从“详细信息”中复制下面的代码,粘贴到乱码邮件的相应位置,保存后就可以了。

Content-Type: text/html;

charset=“gb2312”

Content-Transfer-Encoding: quoted-printable

如果上面的方法还不行,那么你恐怕只能麻烦对方重新发送一份邮件过来了,55555…

当然,在使用Microsoft Office的过程中,并非仅仅只有Word和Outlook Express才会产生乱码,其他的组件也会间或冒出一些乱码,例如Excel中经常遇到的“#乱码”(见图3),其实这只是一个设置的问题,并非文件损坏,而是由于单元格中的数据超过了18位,我们只需将单元格格式由“常规”或“文本”更改为“数值”并拉长列宽就可以了。

篇5:如何解决IE对话框乱码问题

问:

在论坛发帖时弹出IE对话框出现乱码,只出现在特定网站,以前没有出现过 ,如何解决IE话框乱码问题?

答:

这般是网站自己的原因, 没有指定弹出对话框的编码, 所以出现对话框乱码.

可以试下在ie上点击页面,然后选择转码,把语言设置成中文自动再看看可否解决问题

篇6:解决IIS下UTF8文件报错乱码问题

解决IIS下UTF-8文件报错乱码的问题

原因:

你的网站是utf-8编码,但iis的错误信息输出默认使用的是gb2312编码,导致iis出现运行时错误的时候显示的页面是乱码。

解决办法:

[办法1]

自己处理错误,不让iis来处理。

在所有可能出错的地方,都用类似下面的方式来捕捉。

On Error Resume Next

Err.Raise 6 '这行是可能出错的代码

If Err Then

Response.Write Err.Description

Response.End

End If

On Error Goto 0

[办法2]

改变iis错误信息输出默认编码,

1)将c:winnthelpiishelpcommon500-100.asp拷贝到网站(根)目录下

2)将这个文件修改为utf-8编码。

2.1)头部加上 @codepage=65001

2.2)option eXPlicit后面加上一行response.charset=“utf-8”

2.3)将Session.Codepage = 936改为Session.Codepage = 65001

2.4)将第156行

If objASPError.ASPDescription >“” Then

后面的回车去掉(这个地方微软写错了)

2.5)配置iis,设置“自定义错误页面”,将500;100的类型设为URL,同时URL设为 /500-100.asp

2.6)将500-100.asp另存为utf-8编码

篇7:Win 7乱码问题终极解决

近期,居住香港的姐姐也安装了Windows 7,不过,令她烦恼的是使用一些简体中文的软件出现了乱码,而这些软件都无法找到繁体版本,比如:迅雷,即使勉强安装好也无法轻松使用。难道香港用户就无法使用这些简体软件了吗?其实,Windows 7自身已经提供了完善的解决方案了。

一、Windows 7乱码问题来龙去脉

旅居香港的姐姐安装的是我提供的简体中文版本的Windows 7旗舰版,按理是可以顺利兼容简体软件的,然而问题就出在姐姐对默认的安装设置进行了修改。因为姐姐经常使用繁体软件,她将系统的“区域和语言”的“格式”、“位置”、“默认输入语言”、“非Unicode程序的语言”都设置成了更加顺手的香港繁体。

我们知道Unicode也可称为统一码,为每种语言的每个字符设置了统一且唯一的二进制编码,以满足跨语言、跨平台进行文本转换处理的要求,然而,还是有不少程序并不支持该编码,这时就有必要设置非Unicode程序使用的语言编码了。像迅雷这样的软件就支持简体中文编码,而不支持Unicode,当设置了香港繁体的非Unicode就会出现乱码,同理,将非Unicode设置为简体后,很多不支持Unicode的繁体软件也会出现乱码。这个乱码问题难道是两难的吗?其实,我们使用Windows 7的语言包补丁安装功能就可以顺利解决。

二、巧妙解决Windows 7乱码

1.安装合适的语言包

首先,要能安装多种语言包的Windows 7只能是旗舰版或者企业版,接着我们就来解决这个问题吧,

我们点击“开始-Windows Update”打开自动更新窗口。

在窗口中点击“34个可选更新”链接,在可以下载安装的语言包列表中选择“繁体中文语言包”,确定即可。

回到刚才的窗口点击“安装更新”按钮开始下载安装。

安装完语言包补丁需要重启。重启的过程需要配置补丁。

2.合理设置区域和语言

安装完繁体中文语言后,我们还需要进行合理的配置。进入控制面板的“时钟、语言和区域”选项,选择“管理”选项,将“非Unicode程序中所使用的当前语言”设置为“中文简体”。

该设置需要重启计算机。接着我们安装所有的简体软件,比如:迅雷、QQ等,这时这些软件的乱码已经消失了。

而且系统界面已经变成了繁体中文的了。

由于以后日常使用的软件基本是繁体的,我们再次通过“时钟、语言和区域”选项将“非Unicode程序中所使用的当前语言”设置为“香港繁体”。再次重启系统后即可设置完成了。这时就可以正常安装使用繁体中文软件,以后再次安装简体中文软件需重新设置“非Unicode程序中所使用的当前语言”为简体中文。

类似的问题也常会出现在Windows其他版本,比如:Windows XP,解决方法是接近的,不过,Windows 7的多语言包安装功能还是要比以前的系统方便了许多了。

如何解决Windows 7操作系统中软件乱码问题

用事件查看器解决系统问题

问题分析与解决培训总结

如何解决春困问题

如何解决内存不足的问题

班级问题及解决措施

Word 解决“行距不等”问题WORD

先解决最难的问题

求和问题的解决 论文

如何解决男人的“面子”问题

Linux系统下Mp3标签乱码问题的分析和解决(共7篇)

欢迎下载DOC格式的Linux系统下Mp3标签乱码问题的分析和解决,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档