首页 > Linux学习, 发烧音响 > SqueezeBox Server 的中文问题的全面解决之道

SqueezeBox Server 的中文问题的全面解决之道

2009年12月30日 发表评论 阅读评论

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 遥控手柄显示屏正确显示中文的方法

  1. yewumian
    2009年12月30日20:53 | #1

    .FLAC或者.CUE文件名中有中文并混杂西文符号(我也不知究竟是哪一个引起的问题),扫描建库的时候,这类文件不被单独识别索引,就是在专辑里面会归为“无专辑”,点选“无专辑”这个封面,就会看到,有大量的未单独识别为专辑的不少音乐文件。

  2. 东东
    2009年12月30日21:01 | #2

    哈哈,来添块砖头。

  3. 公专人
    2009年12月31日00:29 | #3

    我也加上一条吧,SB3还没到手,但很迫切的想多了解点。

  4. 2009年12月31日00:42 | #4

    yewumian描述的现象非常常见,也非常恼人。有一次整理目录,从Web界面浏览音乐库,发现一个目录下的多个cue不认,于是打开第一个cue,将所有的乱码(拉丁字符)的字符换成英文,于是cue就认了。以为是这个问题,但下次再浏览的时候又不认了,于是又将cue保存成UTF-8,又认了,以为解决了,下次再浏览又不认了。而且一旦第一个认了,目录下其他的也认了(其他文件未做任何修改)。简直要抓狂!

    觉得要彻底解决这个问题,需要花点时间看一下Perl源码,可惜手头没有这个时间啊。

  5. goodappli
    2009年12月31日00:46 | #5

    字符编码体系太多,Unicode和UTF-8,汉字GBK,gbk2312,各种编码体系内部还不兼容,太让人头痛了。还有显示点阵字体的问题,本人一小白,像大家学习了

  6. ernestyu
    2009年12月31日01:06 | #6

    SBR刚到手,还在熟悉当中,期待这篇中文化的文章。

  7. 襄樊简白
    2009年12月31日10:51 | #7

    很喜欢博主的博客,从中学到不少有关罗技播放器的知识,俺已经把你博客地址连接到我的BLOG中,希望能看到更多的好文好图。

    ————襄樊简白————

  8. 襄樊简白
    2009年12月31日11:02 | #8

    希望博主多写些有关SB3有关插件的文章。

  9. Louie
    2009年12月31日12:53 | #9

    去年中开始,一共买了3个罗技的音乐播放器 — Duet, SB3和Boom, 买完之后,一直靠搜寻网上的中英文论坛、博客找到音乐播放器中文化的解决办法,但这些都是零零碎碎的,如果博主能写下全面解决之道,供SqueezeBox玩家参考,真是好极了!期待你的博文!

  10. 肥东
    2009年12月31日19:29 | #10

    我的也是出现乱码,如何解决?

  11. admin
    2010年1月1日05:30 | #11

    谢谢各位朋友的参与。我会尽快完成这篇文章。祝大家2010年,新年愉快,身体健康。

  12. 公专人
    2010年1月2日00:18 | #12

    我明明回复过啊,怎么有些内容不让我看?

  13. admin
    2010年1月2日00:35 | #13

    @公专人

    是个代码 bug 引起的。现在已经修正了。

  14. wangxianok
    2010年1月5日00:03 | #14

    回复下,为了学习

  15. oh my
    2010年1月5日00:14 | #15

    希望能偶给与一些帮助

  16. 土匪
    2010年1月9日04:50 | #16

    学习下!

  17. rnir
    2010年1月9日12:04 | #17

    我用qnap209配合boom在用,刚刚开始接触无损,不知为什么cue文件就是不能正常识别,配对的整轨flac倒是没问题,就是没法分轨换曲,应该怎样使用才正确呢,另外ape也完全不能播放。。。

  18. rqf2010
    2010年1月10日13:54 | #18

    遇到一些问题. 过来看看, ….

  19. Alan
    2010年1月11日08:44 | #19

    谢谢了,我想学

  20. 风影
    2010年1月14日16:03 | #20

    好东西,学习下!

  21. Deqiang Pan
    2010年1月15日19:12 | #21

    猪头猪脑 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

  22. louie
    2010年1月20日14:28 | #22

    今天把SqueezeCenter 7.3 更新到Squeezebox Server 7.4,发现如果要替换里面的CODE2000.TTF字体不是在原来SqueezeCenter的目录:/usr/share/squeezecenter/Graphics/CODE2000.TTF,而是在/opt/SSODS4/var/home/squeezeboxServer/Graphics/CODE2000.TTF

  23. rqf2010
    2010年1月31日20:14 | #23

    有2个中文问题, 不仅仅是乱码问题. 而是不支持中文的问题. 困扰…
    (1) 搜查音乐
    (2) 播放表

    有办法解决吗?
    如果不行, 这么好的东东, 可能不得不放弃了….

  24. Deqiang Pan
    2010年2月1日14:51 | #24

    rqf2010 :

    有2个中文问题, 不仅仅是乱码问题. 而是不支持中文的问题. 困扰…
    (1) 搜查音乐
    (2) 播放表

    有办法解决吗?
    如果不行, 这么好的东东, 可能不得不放弃了….

    你说的问题,其实就是我文中所说的“问题三”。除了自己修改程序之外,目前只能等候厂家的后续修正版。
    你也可以去这个地方投诉:https://bugs.slimdevices.com/

  25. fc
    2010年2月28日03:15 | #25

    7.4.1+SB3支持ape 分轨了。 我无意中点了一个ape的cue播放,可以显示分轨信息,可以选轨播放。

  26. Deqiang Pan
    2010年3月3日14:15 | #26

    fc :

    7.4.1+SB3支持ape 分轨了。 我无意中点了一个ape的cue播放,可以显示分轨信息,可以选轨播放。

    我是没有试出来过。

    请其他朋友证实一下。

  27. lisfina
    2010年6月13日13:23 | #27

    呵呵,楼主你好!我刚刚在美国买的SqueezeBox Radio, 刚刚遇到了中文显示的问题,google到你的文章已经顺利解决了问题。非常感谢。特意注册一个wordpress 的账号来表示感谢!

  1. 2010年5月4日22:41 | #1
您必须在 登录 后才能发布评论.