在网上花了一段时间搜集整理关于sigmatel芯片的mp3的字库的解决方案,有两个人对我的启示最大,一个是mp3diy的basicasm,他提供了修改替换字库的方法,一个是iaudio的dlwds,因为他汉化固件,所以也研究字库,在他的文章中得到不少启示。我在这里把我寻找和测试字库的过程和发现的问题汇总一下,供大家参考,也想借此和有相同爱好的朋友做个交流。文中可能有不对的地方,希望大家多指正。
很多MP3机器在对中文的支持上有是有问题,尤其是小品牌的韩产mp3以及国产大部分mp3,因为内置字库有限(通常是国标码的GB2312-80,6763个汉字),不支持中文或者只支持简体中文(繁体中文),歌曲的ID3信息就无法正常显示(通常表现是显示一个空白)。 我看了很多的mp3的固件,发现字库有如下特点:
1.韩系、日系mp3使用sigmatel芯片的机器不是很多,但是多数对多国语言支持的很好,一般的机器都可以同时支持简体/繁体中文、韩国语、日本语等等,基本上的可以显示的字符范围是CJK(中日韩大字符集编码,ISO/IEC 10646-1,共20902个中日韩汉字)的标准的字符。
2.国内的mp3有两种情况:
(1)只支持一种语言,优点:我们一般只使用GB2312-80的字符集的汉字,基本常用字为主,生僻字使用的较少,够用为原则。因为每多一种语言,就要使固件占用闪存增加一定的容量。那么我们存储歌曲的空间就会减少。缺点:对部分扩展集以外的汉字支持的不够好。比如,徐若瑄的"瑄"字就无法正常显示。以安耐克的机器为例,sf700/sf800/sf810就属于这种类型。 (2)支持多国语言,优点:有多种语言设置可以选择,通常还分两种,分别是支持“英简繁”和“英简繁日韩欧等”的固件。适合用户经常使用不同语言操作系统的人使用。缺点:主要的是这些语言的显示都支持但是不能同时支持,比如在简体中文下,不能显示“愛”,在繁体中文下又不能显示“爱”,在国内下载的歌曲文件有时候会在id3中写入繁体的汉字,如果这样的歌曲文件比较多的话,用户就会懒得转换了,而“同时”支持多国语言的字库可以同时显示这两个字。但是对于大陆地区的使用简体中文操作系统的用户来说,不可以“同时”显示多国语言(如“爱”和“愛”)的字库,其中的英文和繁体等这些语言模式我们基本上不会使用,这就造成了其他语言字库长期占用闪存空间不被使用的情况。大家会发现一般支持一种语言的固件的resource.bin文件大小是1.5~2M左右,而三种语言的固件是2.5左右,而五六种甚至更多的的固件在4M以上。(这里提到的支持多种语言有两个含义:1.只用一个字库[一个299929数据段]就支持多国语言;2.用多个字库[多个299929数据段]分别支持每种语言,但是不能同时显示。我认为最好的是前者。)
这里多提几句,我觉得国产的很多机器走的就是这个怪圈,说是支持很多种语言,可是就是不能同时显示,那有什么意义呢,我们要整天切换语言模式吗?还有就是如果想看日文的歌词,还必须得忍受英文或者日文的菜单吗??上面提到了,每多一种语言模式就等于剥夺了我们的闪存空间(因为多一个字库,固件要多占闪存空间的。),多一个299929数据段至少多占用0.5兆空间。
因为一位朋友问过我pisa的固件,所以我还研究过pisa的固件,也是属于“英简繁日韩欧等”的,字库的分布很乱套的,基本结构和上面的dq-700很像。分辨各种语言也费事,大家可以用我前面提到的修改部分字符来分辨,大家自己慢慢查看吧,这就是我说的resource.bin文件很大,实际可用闪存空间应该会比其他品牌的小几M的。 |