SqueezeBox Server 的中文问题的全面解决之道
SqueezeBox 播放器的服务器程序,依发布时间顺序,用过的名称有:SLIMP3 Server(v3.1b1 – v4.2)、SlimServer(v5.0.0-v6.5.4)、SqueezeCenter(v7.0.0-v7.3.4)、SqueezeBoxServer(v7.4.0-当前版本)。瞧着有点乱,是不是?为了行文方便,以下统一称它为 SC Server。
所有正式发布过的 SC Server 历史版本,均可从官方网站下载:http://downloads.slimdevices.com/
SqeezeBox 播放器是澳大利亚 Slim Devices 公司研发的。在它发布了 SqueezeBox Classic V3 之后,到 2008 年时,被 Logitech 收购了。中国的音响发烧友,这两年也陆续开始接受并喜爱上了 SqueezeBox 数字播放器。但中文化一直是个问题,长期困扰着中国的用户。
主要问题:
1、SqueezeBox Classic V3、SqueezeBox Boom 和 Transporter 的屏幕显示汉字丑陋。
2、使用 .cue 文件的整轨专辑乱码。表现:在 SC Server 中,浏览专辑、浏览音乐文件夹等处中文乱码,播放时,曲目清单乱码。
3、保存在 favorites 里的中文乱码。
准备工作:
由于 SC Server 版本众多,所以我先假定你正在使用当前版的 SC Server,即 7.4.1 版。以下叙述以 Windows 版为例,Linux 版大致相同。我用 SqueezeBox Classic V3 作演示(下称SB3)。
1、SC Server 7.4.1 的取得。请从官方网站直接下载:http://www.mysqueezebox.com/download。如果你用 Windows 操作系统,请选 “Windows 2000/XP/Visa/7 (50MB)”,Linux 则根据你的 Linux 发行包,分为 for Debian/Redhat/Perl 版,请根据你的实际情况选用。在这里,我用的是“Perl Source Code(tar.gz-55MB)”。
2、安装 SC Server 7.4.1。这一步应该没有什么可讲的,请按系统提示,一步一步操作即可。如果遇到需要输入 mysqueezebox.com 帐号,如果你有就填入,没有就去注册一个。一切均有提示,在此我就不多说了。
3、安装完 SC Server 之后,启动它,然后打开浏览器,访问:http://127.0.0.1:9000,在 SC Server 的 WebGui 界面的右下角,找到“Settings”,点击它,弹出新窗,打开设置界面。“Basic Settings”的标签的第一项,就是“Language”,即设置语言的地方。这里,请点开下拉菜单,选择你熟悉的“简体中文”。之后,请点击右下角处的“Apply”,保存设置(立即生效)。
4、现在,回到 SB3 吧。
第一个问题:SB3 屏幕显示汉字时缺笔划,美观度差。
问题成因:SC Server 自带的屏显字库,不能正确显示中文字符。
解决方法:从你的 XP 的字库里,寻找一款能够显示点阵汉字时不缺笔划的字体,去替换 SC Server 的字库。SC Server 的字库文件名是:CODE2000.TTF,存放目录:C:\Program Files\Squeezebox\server\Graphics。在这里,我将 XP 自带的“黑体”字库,将它拷出来,改名为 CODE2000.TTF,然后替换到 SC Server 的上述目录里去。我用 XP 64 位英文版,它的黑体中文字库文件名是:“simhei.ttf”。另外,安装 MS Office 之后,你可以找到一个叫“华文中宋”的中文字库,这是我当前的选择。当然,你也可以用其他中文字库尝试着替换一下看看。
上面提到的字体,都是有版权的,所以我在这里不能提供下载,请根据我提供的线索自行寻找。
替换完 CODE2000.TTF,然后重启 SqueezeBox Server,生效。
第二个问题:使用 .cue 文件的整轨专辑乱码。在 SC Server 中,浏览专辑、浏览音乐文件夹等处中文乱码,播放时,曲目清单乱码。
问题成因:不明。我猜是 SC Server 开发组中,应该没有中国人或者日本人。西人对双字节的字符文字的处理,不太留意,结果导致在历史各个版本中,这个问题被反复修正,又反复在后续版本中再次出现。
解决方法一:寻找并使用一个正常工作的版本。经验证,7.2.1 这个版本对中文最友善。其次是 7.3.2 这个版本。SC Server 历史版本的下载网址是:http://downloads.slimdevices.com/
这个方法推荐给下述播放器的使用者:SqueezeBox Classic V3、Boom、Transporter。
注意:这个方法建议你一定要把 .cue 保存成 utf-8 格式,并且你的操作系统也能处理 utf-8,这样才不会中文乱码。我喜欢用的一个文本编辑器是 Ultraedit32,用它可以将 .cue 改存成 utf-8 格式。Ultraedit32 的官方网址:http://www.ultraedit.com
还有一点需要提醒的是:请忽略 SC Server 7.3.4 这个版本,因为它已经被官方放弃了,没有成为最终的稳定发行版。
解决方法二:对于使用双字节字符的专辑,例如“中文简体/繁体/日文”,停用整轨,改用分轨。
对于 SqueezeBox Radio 和 Touch 的玩家,“解决方法一”是失效的。原因是,Radio 和 Touch 因为“新特性”的原因,必须要和 SC Server 7.4 或者以上的版本配合。
经过中文用户多次投诉,SC Server 开发组已经纠正了当前版本“浏览音乐文件夹”时的中文乱码问题。但是在浏览“浏览专辑”、“最新引进的音乐”时,如果你的专辑使用的是 .cue 整轨,中文仍然会乱码。虽然这个问题已经有人提交给了 bugfix 组,但目前仍然未见到修正版的出现。
经验证,停用整轨,改用分轨时,可以解决中文乱码。
我用 foobar2000 这个软件,做整轨转分轨的转换。当然,这种转换工作,仅限于使用双字节字符的专辑。对于只使用单字节西文字符的专辑,就没有必要做这一步了。foobar2000 的官方网址:http://www.foobar2000.org/
SqueezeBox 系列播放器通过 SC Server 变相支持 APE 文件的播放,但它对 APE 附带的 CUE 文件无视,所以 APE 整轨文件无法在 SqueezeBox 播放器里进行分轨播放。解决的办法是:将所有的 APE 文件转换为 FLAC 格式。我用 dBpowerAMP 转换器,dBpowerAMP 的官方网址:http://www.dbpoweramp.com/。
第三个问题:保存诸如电台名称到 favorites 里时,电台名称不能用中文名,会乱码。
问题成因:这是一个 Web 编程问题。解决的办法就是修正 Web 程序,纠正它处理保存汉字的问题。
解决方法:我写这篇文章,当然不是为了来教会别人学写程序的。所以修正这个问题,还是交由 SC Server 开发组去做,我们耐心等侯就行了。那么,作为普通用户,还有其他变通方法吗?当然有的。既然我已经分析出,这个故障出现在将中文名称存盘时才会发生,所以我们可以透过避免让 SC Server 执行“保存中文名称”的动作,而只是让 SC Server 去读取并显示 favorites 里的中文电台名称。
我首先假定你需要保存到 favorites 里的电台不会太多。因为在 SqueezeBox 播放机里搜索到的电台,但凡是有中文名称的,可以通过点击“心形”标志,直接保存进 favorites,所以不会发生中文乱码。而没被 SqueezeBox 收录的中文电台,估计数目也不会太多。
好了,既然不让 SC Server 去“存”,那我用 ultraedit32 或者 Windows 里自带的写字板等文本编辑器去完成“存”中文的事好了。
用文本编辑器,将两个 —cut— 之间的内容,保存成文件:favorites.opml。
—cut—
<?xml version=”1.0″ encoding=”UTF-8″?>
<opml version=”1.0″>
<head title=”Favorites”>
<expansionState></expansionState>
</head>
<body>
<outline URL=”电台流媒体的绝对网址” text=”中文电台名称一” type=”audio” />
<outline URL=”电台流媒体的绝对网址” text=”中文电台名称二” type=”audio” />
</body>
</opml>
—cut—
上面的是简单的 HTML 代码,我想你花点时间应该能看懂吧?参照上述格式,你可以添加更多的电台。
准备好 favorites.opml 这个文件后,请打开 SC Server 管理界面,找到 favorites,将鼠标放在 favorites 上,你会看到右侧有一个笔形标志,移动鼠标到这个标志上面,会显示“编辑”两字。现在,点击这个编辑键,进入 favorites 的二级菜单。在这里,请点击“import”,再点击“选择”,将刚才你保存好的 favorites.opml 文件找出来,然后点击“import”。
搞定。
重要:致使用 Squeezebox Radio、Squeezebox Touch 和 Squeezebox Duet 遥控手柄的用户:如果你看完上文,还是没有解决你的播放器的中文乱码问题,请接着看另一篇文章:《Squeezebox Radio、Squeezebox Touch 和 Squeezebox Duet 遥控手柄显示屏正确显示中文的方法》
.FLAC或者.CUE文件名中有中文并混杂西文符号(我也不知究竟是哪一个引起的问题),扫描建库的时候,这类文件不被单独识别索引,就是在专辑里面会归为“无专辑”,点选“无专辑”这个封面,就会看到,有大量的未单独识别为专辑的不少音乐文件。
哈哈,来添块砖头。
我也加上一条吧,SB3还没到手,但很迫切的想多了解点。
yewumian描述的现象非常常见,也非常恼人。有一次整理目录,从Web界面浏览音乐库,发现一个目录下的多个cue不认,于是打开第一个cue,将所有的乱码(拉丁字符)的字符换成英文,于是cue就认了。以为是这个问题,但下次再浏览的时候又不认了,于是又将cue保存成UTF-8,又认了,以为解决了,下次再浏览又不认了。而且一旦第一个认了,目录下其他的也认了(其他文件未做任何修改)。简直要抓狂!
觉得要彻底解决这个问题,需要花点时间看一下Perl源码,可惜手头没有这个时间啊。
字符编码体系太多,Unicode和UTF-8,汉字GBK,gbk2312,各种编码体系内部还不兼容,太让人头痛了。还有显示点阵字体的问题,本人一小白,像大家学习了
SBR刚到手,还在熟悉当中,期待这篇中文化的文章。
很喜欢博主的博客,从中学到不少有关罗技播放器的知识,俺已经把你博客地址连接到我的BLOG中,希望能看到更多的好文好图。
————襄樊简白————
希望博主多写些有关SB3有关插件的文章。
去年中开始,一共买了3个罗技的音乐播放器 — Duet, SB3和Boom, 买完之后,一直靠搜寻网上的中英文论坛、博客找到音乐播放器中文化的解决办法,但这些都是零零碎碎的,如果博主能写下全面解决之道,供SqueezeBox玩家参考,真是好极了!期待你的博文!
我的也是出现乱码,如何解决?
谢谢各位朋友的参与。我会尽快完成这篇文章。祝大家2010年,新年愉快,身体健康。
我明明回复过啊,怎么有些内容不让我看?
@公专人
是个代码 bug 引起的。现在已经修正了。
回复下,为了学习
希望能偶给与一些帮助
学习下!
我用qnap209配合boom在用,刚刚开始接触无损,不知为什么cue文件就是不能正常识别,配对的整轨flac倒是没问题,就是没法分轨换曲,应该怎样使用才正确呢,另外ape也完全不能播放。。。
遇到一些问题. 过来看看, ….
谢谢了,我想学
好东西,学习下!
猪头猪脑 18:53:51
有关Mp3的tag乱码最近研究了一下:
MP3的ID Tag分为老的V1版本是新的V2版本,V2又有2.3、2.4等小版本,V1不支持Unicode编码,所以很多播放器显示中文会有乱码,V2开始支持Unicode,所以一定要用ID3 的v2版本加入中文内容,且要用UTF-8或者UTFLE的编码。
Convertz就是这样的工具,可以直接对MP3里面的V2 Tag进行编码。但是如果MP3里面只有V1版本的Tag,那么就无法转换,这个时候可以用一个MP3Tag软件( http://www.mp3tag.de),通过保存功能,自动批量将V1tag转成v2的,而且直接就是UTF-8编码的了。
猪头猪脑 18:55:43
这样做完之后,Sb显示的就都不是乱码了,但有时在正常文字之外(主要是Artist显示)会伴随着还有一些乱码,这个是因为SC扫描库的历史数据,所以找个夜里rescan一下,之后就彻底没有乱码了。
John 18:55:58
这段我抄到BLOG上,行不?
猪头猪脑 18:56:18
没问题啊,老潘,一起共享经验啊
John 18:56:30
好。感谢。
猪头猪脑 18:56:45
有空我觉得做个带截图的howto可能更明白。
John 18:57:13
我最近在转狼咸平的系列MP3时,遇到这个问题的。
louie 18:57:28
Convertz里面可以把V1版本拷贝到V2里面
猪头猪脑 18:57:29
这两天集中搞了搞(原来基本上没太多MP3,最近主要给孩子下了一些儿歌只有mp3格式的),基本上显示得很好,没了讨厌的乱码了。
猪头猪脑 18:57:44
那就更省事了
猪头猪脑 18:58:23
我用MP3Tag主要是还需要可以根据文件名批量自动生成Tag,或者根据Tag自动生成文件名(改掉简单的1.mp3,2.mp3)
louie 18:59:04
Convertz是免安装绿色软件,MP3TAG功能更强
猪头猪脑 19:00:25
louie,自动拷贝v1到v2的选项在哪,还是没有看到。我的是802版
louie 19:05:33
滑鼠右键按Convertz的图标- 饮品档案标签转换 – ID3标签 – 选择你要编辑的MP3档案 – 编辑- 里面有一个功能键复制ID3V2,或者ID3V1 -储存
louie 19:06:28
这个是按照繁体界面打出来的,简体界面用字可能有分别
猪头猪脑 19:06:56
这样好像只能一个一个转吧
louie 19:07:57
ID3V2储存方式我一般选择V2.4 UTF-8
今天把SqueezeCenter 7.3 更新到Squeezebox Server 7.4,发现如果要替换里面的CODE2000.TTF字体不是在原来SqueezeCenter的目录:/usr/share/squeezecenter/Graphics/CODE2000.TTF,而是在/opt/SSODS4/var/home/squeezeboxServer/Graphics/CODE2000.TTF
有2个中文问题, 不仅仅是乱码问题. 而是不支持中文的问题. 困扰…
(1) 搜查音乐
(2) 播放表
有办法解决吗?
如果不行, 这么好的东东, 可能不得不放弃了….
你说的问题,其实就是我文中所说的“问题三”。除了自己修改程序之外,目前只能等候厂家的后续修正版。
你也可以去这个地方投诉:https://bugs.slimdevices.com/
7.4.1+SB3支持ape 分轨了。 我无意中点了一个ape的cue播放,可以显示分轨信息,可以选轨播放。
我是没有试出来过。
请其他朋友证实一下。
呵呵,楼主你好!我刚刚在美国买的SqueezeBox Radio, 刚刚遇到了中文显示的问题,google到你的文章已经顺利解决了问题。非常感谢。特意注册一个wordpress 的账号来表示感谢!