潜水多年,不想忍了,:-):
一直使用linux系统,但是作为一个中文用户,mp3乱码问题始终困扰着我,在amarok早期版本中其是支持非标准的id3v1/2的编码,但可惜的是其在新近的后续版本中去掉了这个功能,如果想要支持中文有以下几个解决方法:
1, 对于id3v1的mp3文件 如果不改动底层支持是无论如何都不会支持中文的, 因为该标准制定时根本就不支持中文语系的编码
2, 使用工具逐一修改mp3的id3v2的信息使其符合标准, 也就是说每下载一首mp3都要去修改,因为现在桌面是windows的天下,非标准的mp3格式还是占据了主流
今天花了半天时间研究了下taglib库的mpeg/id3v1/id3v2的实现,顺便对其进行深度改造使其支持非标准的mp3 id3v1/id3v2编码,增加了大约200行代码左右,思路如下:
1, 首先尝试使用TAGLIB_COMPAT_ENCODING环境变量定义的编码
2, 如果没有设置以上的环境变量尝试使用当前系统默认的字符编码
3, 如果转码失败则尝试使用GBK编码
4, 如果全部失败则使用taglib原始编码
理论上改动不会对原始的taglib流程及编码造成任何影响,已经在archlinux上的amarok测试通过, 项目地址是:
http://code.google.com/p/taglib-mod/
你可以在项目主页上下载修改过的taglib原始代码, 也可以选择下载针对taglibv1.7的patch补丁,也可以下载针对archlinux的AUR包
改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
-
- 帖子: 1
- 注册时间: 2008-10-07 12:41
-
- 帖子: 1967
- 注册时间: 2008-09-30 17:46
- nyfair
- 帖子: 1067
- 注册时间: 2007-12-07 12:49
- 系统: winnux10
- 来自: Tree New Bee
Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
foobar2000 script + 快捷键,四海一家的解决之道
话说别用id3了,现在mp3也能用apev2tag
话说别用id3了,现在mp3也能用apev2tag
本人在此论坛仅负责吐槽,问题急需解决请支付宝转账5毛至{我的id@qq.com},将会竭诚为您服务
linux常见多媒体问题处理指南
1. 视频播放有问题->卸载gstreamer
2. 音频播放有问题->卸载pulseaudio
3. 远程播放有问题->卸载avahi
4. 系统全都有问题->卸载systemd,远离Lennart这傻逼让你从此轻松自在
⇩自由网络⇩
https://github.com/nyfair/freeweb
linux常见多媒体问题处理指南
1. 视频播放有问题->卸载gstreamer
2. 音频播放有问题->卸载pulseaudio
3. 远程播放有问题->卸载avahi
4. 系统全都有问题->卸载systemd,远离Lennart这傻逼让你从此轻松自在
⇩自由网络⇩
https://github.com/nyfair/freeweb
- adam8157
- 帖子: 2794
- 注册时间: 2009-03-05 16:31
- 联系:
Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
有点点"倒行逆施"的意思
用puddletag或者easytag能很轻松的转换编码
用puddletag或者easytag能很轻松的转换编码
-
- 帖子: 152
- 注册时间: 2006-01-03 18:23
- 联系:
Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
看起来不错,推荐一个我写的小工具,可以方便地改mp3的编码,确保其在Windows、Linux、手机上都不乱码
http://code.google.com/p/mp3tagiconv/
支持Windows Media Player等软件的核心是将GBK编码的流写进ID3v1,而将UTF-8编码的信息写进ID3v2,具体解释见: Mp3标签乱码问题分析与解决方案
http://code.google.com/p/mp3tagiconv/
支持Windows Media Player等软件的核心是将GBK编码的流写进ID3v1,而将UTF-8编码的信息写进ID3v2,具体解释见: Mp3标签乱码问题分析与解决方案
以Wiki模式创建中文Linux文档,欢迎加入 http://linux-wiki.cn
-
- 帖子: 1967
- 注册时间: 2008-09-30 17:46
Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
这个对症!chenxing 写了:看起来不错,推荐一个我写的小工具,可以方便地改mp3的编码,确保其在Windows、Linux、手机上都不乱码
http://code.google.com/p/mp3tagiconv/
支持Windows Media Player等软件的核心是将GBK编码的流写进ID3v1,而将UTF-8编码的信息写进ID3v2,具体解释见: Mp3标签乱码问题分析与解决方案
-
- 帖子: 1
- 注册时间: 2010-02-05 18:16
Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
你好,我在windows下读取id3信息时
TagLib::FileRef f( "path" );
path为中文路径,或者歌曲有中文名时,tag为空的,不知道是什么原因,在linux下就没有这个问题?
TagLib::FileRef f( "path" );
path为中文路径,或者歌曲有中文名时,tag为空的,不知道是什么原因,在linux下就没有这个问题?