当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-03-06 19:34 

注册: 2008-10-07 12:41
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
潜水多年,不想忍了,:-):

一直使用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包


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-03-06 20:05 

注册: 2008-09-30 17:46
帖子: 1967
送出感谢: 29
接收感谢: 4
处帖 :em11


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-03-08 11:22 
头像

注册: 2007-12-07 12:49
帖子: 1046
地址: Tree New Bee
系统: winnux10
送出感谢: 2
接收感谢: 15
foobar2000 script + 快捷键,四海一家的解决之道
话说别用id3了,现在mp3也能用apev2tag


_________________
本人在此论坛仅负责吐槽,问题急需解决请支付宝转账5毛至{我的[email protected]},将会竭诚为您服务

linux常见问题处理指南

1. 视频播放有问题->卸载gstreamer
2. 音频播放有问题->卸载pulseaudio
3. 远程播放有问题->卸载avahi
4. 系统全都有问题->卸载systemd

⇩自由网络⇩
https://github.com/nyfair/freeweb


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-03-08 12:46 
头像

注册: 2009-03-05 16:31
帖子: 2794
送出感谢: 0 次
接收感谢: 11
有点点"倒行逆施"的意思

用puddletag或者easytag能很轻松的转换编码


_________________
http://adam8157.info/


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-03-08 13:52 

注册: 2006-01-03 18:23
帖子: 152
送出感谢: 1
接收感谢: 5
看起来不错,推荐一个我写的小工具,可以方便地改mp3的编码,确保其在Windows、Linux、手机上都不乱码
http://code.google.com/p/mp3tagiconv/

支持Windows Media Player等软件的核心是将GBK编码的流写进ID3v1,而将UTF-8编码的信息写进ID3v2,具体解释见: Mp3标签乱码问题分析与解决方案


_________________
以Wiki模式创建中文Linux文档,欢迎加入 http://linux-wiki.cn


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-03-08 17:44 

注册: 2008-09-30 17:46
帖子: 1967
送出感谢: 29
接收感谢: 4
chenxing 写道:
看起来不错,推荐一个我写的小工具,可以方便地改mp3的编码,确保其在Windows、Linux、手机上都不乱码
http://code.google.com/p/mp3tagiconv/

支持Windows Media Player等软件的核心是将GBK编码的流写进ID3v1,而将UTF-8编码的信息写进ID3v2,具体解释见: Mp3标签乱码问题分析与解决方案

这个对症!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 改造taglib彻底解决amarok等kde下音乐播放程序播放mp3时的中文乱码问题!
帖子发表于 : 2012-04-18 16:36 

注册: 2010-02-05 18:16
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
你好,我在windows下读取id3信息时
TagLib::FileRef f( "path" );
path为中文路径,或者歌曲有中文名时,tag为空的,不知道是什么原因,在linux下就没有这个问题?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译