中文ID3在Flash中乱码问题的解决方案 |
| 作者:佚名 来源:蓝色经典 作者: qhwa 更新:2007-1-13 21:01:15 错误报告 我要投稿 |
针对云开的用AS2彻底解决onID3的乱码-深入FLASH编码转码机制!作了一点改进,可以在MX中实用
改动:
- 将类封装成简单的function - 运行前后不改变原来的 System.useCodepage 值
代码:
function ANSI2UTF(ANSI_string) { var temp = !(!System.useCodepage); System.useCodepage = true; var code = ""; for (var i = 0; i<ANSI_string.length; i++) { code += "%"+ANSI_string.charCodeAt(i).toString(16); } var result = unescape(code); System.useCodepage = false; System.useCodepage = temp; return result; } 使用示例:
my_sound = new Sound(); my_sound.onID3 = function() { var songName = ANSI2UTF(this.id3.songname); trace("result: "+songName); }; my_sound.loadSound("music.mp3", false); 另外,在Flash帮助中有这样一段话:
引用:
在文档中请只设置一次 system.useCodepage 属性;不要为了使播放器将某些外部文件解释为 Unicode 并将另一些文件解释为其它编码,而多次使用该属性,原因是这样做会产生无法预料的结果。 看来这个函数可能会带来隐藏的问题,至于到底是什幺问题,我目前还没有遇到。解决mp3ID3乱码问题还有其它办法,比如建立utf-8和GB2312/Big5编码的映像表等,但是都没有这个简单。
现存的问题:
只能转换本地编码到UTF-8,即:简体系统读取繁体中文ID3仍然会有乱码,同理繁体系统也是 只能转换ID3,对于更加广泛的txt等外部文本,转换方法仍然存在问题
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |