QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3277|回复: 17

Amarok标签输入后为变成问号[已解决]

[复制链接]
发表于 2007-12-14 03:23:14 | 显示全部楼层 |阅读模式
好久没下什么歌了,最近下了些歌,肯定要修改一些标签的,但是一旦修改,再打开的时候就变成???了,用的是1.4.7系统自带的版本,系统为1107,播放器默认能够显示gb编码的标签。我开始没注意这个问题,因为我输入标签信息后,收藏显示信息是正确的,添加到播放列表后的信息是正确的,但是我一旦重新扫描收藏就会出错了.

我搜索了下,说是补丁有失效,具体就不清楚了,是我哪里搞错了还是怎么回事?帮个忙

发个补丁,用的audacious的编码识别,不过只识别中文(UTF-8,GBK,日文和韩文不晓得怎么测试,就精简了,也不太了解编码方面的

没有在magiclinux下测试过,现在装的系统是换了硬盘后装的,当时只有fc8了。

[ 本帖最后由 SCerZZ 于 2008-2-28 19:00 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2007-12-14 18:16:10 | 显示全部楼层
然,的确是补丁有点问题.......
正想办法呢....
回复

使用道具 举报

 楼主| 发表于 2007-12-15 00:06:01 | 显示全部楼层
嗯,加油,不知道哪里有这个的源代码包啊,也想看看
http://apt.magiclinux.org/magic/2.1/unstable/SRPMS.os/
中的版本是1.4.5的
回复

使用道具 举报

 楼主| 发表于 2007-12-17 01:57:21 | 显示全部楼层
自己看了下代码,改了下,这里是补丁,我自己用起没什么问题了,思路就是把读取标签信息的时候转gb到utf8
写入信息的时候把utf8转为gb。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2007-12-17 01:58:35 | 显示全部楼层
对了,对应版本是1.4.7,我自己根据http://apt.magiclinux.org/magic/2.1/unstable/SRPMS.os/
中的源代码包的spec文件修改自己打了个包了,暂时还没什么问题
回复

使用道具 举报

发表于 2007-12-17 11:16:20 | 显示全部楼层
原帖由 SCerZZ 于 2007-12-17 01:57 发表
自己看了下代码,改了下,这里是补丁,我自己用起没什么问题了,思路就是把读取标签信息的时候转gb到utf8
写入信息的时候把utf8转为gb。

这样只针对gb的tag吧。
回复

使用道具 举报

发表于 2007-12-17 12:06:09 | 显示全部楼层
QString::fromLocal8Bit
这个静态函数应该是可以用于 locale 对应的编码的。
mgc 是 gb18030 ,那么就是 gb18030 编码的 tag。

如果要能识别多种的,必须要样本文本足够,否则很容易出错。

原先的补丁也是用这个函数的。

既然可以解决问题,何不用一下呢?
回复

使用道具 举报

 楼主| 发表于 2007-12-17 13:00:05 | 显示全部楼层
嗯,是针对local的,如果local是utf8就没用了,没有强制为从gb转到utf8或者从utf8到gb
只是在magiclinux下的GB18030编码下才能正常
回复

使用道具 举报

发表于 2007-12-21 12:11:13 | 显示全部楼层
我用nautilus,写个转换脚本,一键搞定,把所有下载的新歌都搞成utf-8,多省事啊,而且windows的千千和foobar都认utf-8的,只要不用wmp就好了
多省事啊,完全不怕有副作用
回复

使用道具 举报

发表于 2007-12-21 19:01:50 | 显示全部楼层
这不是办法,太麻烦。从根本上解决的办法就是能智能判断编码才行。
回复

使用道具 举报

发表于 2007-12-22 10:07:35 | 显示全部楼层
audacious 的编码识别代码效果现在已经很不错了。
为何不借用试试?
回复

使用道具 举报

 楼主| 发表于 2007-12-23 17:51:20 | 显示全部楼层
有空去看看,看能搞出来不,也做点贡献
回复

使用道具 举报

 楼主| 发表于 2008-2-28 19:06:45 | 显示全部楼层
顶一下起来,还是算有新收获了
回复

使用道具 举报

发表于 2008-2-28 19:19:49 | 显示全部楼层
原帖由 sejishikong 于 2007-12-21 19:01 发表
这不是办法,太麻烦。从根本上解决的办法就是能智能判断编码才行。

智能判断怕是不易啊。
有个mozilla的项目,用python写的chardet,可以自动判断编码,但也只能说马马虎虎吧。中文只返回gb2312
回复

使用道具 举报

 楼主| 发表于 2008-2-28 20:05:53 | 显示全部楼层
只要猜测出来不是UTF-8都强制用GBK编码,懒得管这么多条件了,看了貌似没有完全准确判断的,都是猜测,字符越长准确率越高,从audacious中找的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-27 12:58 , Processed in 0.066025 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表