Flash AS解决中文mp3乱码 - 网站

Flash AS解决中文mp3乱码

分类:Flash教程 · 发布时间:2023-08-06 03:44 · 阅读:4726

Flash如果MP3的ID3标签使用GB2312编码,那么在Flash脚本输出时是乱码的 代码1 var s:Sound=new Sound(this); s.loadSound("dxh.mp3",false); s.onID3=function(){ trace(this.id3.songname); } 输出结果是: ?&IExcl;??? dxh.mp3的ID3v1的标签正确

Flash如果MP3的ID3标签使用GB2312编码,那么在Flash脚本输出时是乱码的
代码1
var s:Sound=new Sound(this);
s.loadSound("dxh.mp3",false);
s.onID3=function(){
trace(this.id3.songname);
}
输出结果是:
?&IExcl;???
dxh.mp3的ID3v1的标签正确应该是songname="丁香花",看来FLASH在转码上出现了问题。我们来看看songname这个字符串中倒底是什么?
代码2:
var s:Sound=new Sound(this);
s.loadSound("dxh.mp3",false);
s.onID3=function(){
var songname:String=this.id3.songname;
for(var i=0;itrace(songname.charCodeAt(i));
}
}
输出结果是:
182
161
207
227
187
168
我们使用计算器转换成16进制就是"B6 A1 CF E3 BB A8";
正好是"丁香花"的GB2312编码,我们还是用FLASH来试试

System.useCodepage=true;
trace(unescape("丁香花"));
输出结果是:
丁香花
那么为什么代码1出现乱码现象,是因为FLASH将GB2312当作了UTF-8来解释,我们再来测试一下:
代码3:

var s:Sound=new Sound(this);
s.loadSound("dxh.mp3",false);
s.onID3=function(){
var songname:String=this.id3.songname;
trace(escape(songname));
}
结果是:
?????¨
问题的原因我们找到了,只要将GB2312转换成UTF-8编码就能显示正常了,可是如果转换呢,大家注意看代码2,我再测试一下想法
代码4:

System.useCodepage=true;
var gb:String=unescape("丁香花");
System.useCodepage=false;
trace(gb);
trace(escape(gb));
输出结果:
丁香花
涓侀?鑺

相关文章

flash画笔工具怎么绘制图形?

flash画笔工具怎么绘制图形?flash中想要绘制图形,该怎么绘制呢?我们可以使用画笔工具绘制,下面我们就来看看flash中画笔工具的使用方法,需要的朋友可以参考下

flash怎么绘制一个大红灯笼?

flash怎么绘制一个大红灯笼?flash中想要绘制一个打灯笼,该怎么绘制呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下

Flash制作曲线式的小球

这篇教程向大家分享Flash制作曲线式的小球方法,教程很基础,适合新手来学习,推荐过来,一起来学习吧

Flash组件教程:组件动画效果的修改

某些组件在用户的操作过程中,会出现一些很酷的动画效果。比如,使用TREE制作下拉菜单,或者ComboBox制作下拉菜单时,下拉列表很酷的滑出来。这种效果,主要是借助Tween类或者easing类完成的。一般的效果分为三类: A、Open:使用组件打开子部分动画效果时,这类效果支持的组

Flash AS 教程:构造函数(Constructor)

构造函数(Constructor) 构造函数是指一个名字与类名相同的方法。当该类被实例化时,该函数会被自动调用,也可以传入参数,例如: 首先,创建一个类: package { public class MyClass { public function MyClass(arg:String) { trace("constructed"); tra

返回分类 返回首页