Flash AS解決中文mp3亂碼
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-06 01:25:59 作者:佚名
我要評論
Flash如果MP3的ID3標簽使用GB2312編碼,那么在Flash腳本輸出時是亂碼的
代碼1
var s:Sound=new Sound(this);
s.loadSound("dxh.mp3",false);
s.onID3=function(){
trace(this.id3.songname);
}
輸出結(jié)果是:
?&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);
}
輸出結(jié)果是:
?&IExcl;???
dxh.mp3的ID3v1的標簽正確應(yīng)該是songname="丁香花",看來FLASH在轉(zhuǎn)碼上出現(xiàn)了問題。我們來看看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;i<songname.length;i ){
trace(songname.charCodeAt(i));
}
}
輸出結(jié)果是:
182
161
207
227
187
168
我們使用計算器轉(zhuǎn)換成16進制就是"B6 A1 CF E3 BB A8";
正好是"丁香花"的GB2312編碼,我們還是用FLASH來試試
System.useCodepage=true;
trace(unescape("丁香花"));
輸出結(jié)果是:
丁香花
那么為什么代碼1出現(xiàn)亂碼現(xiàn)象,是因為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));
}
結(jié)果是:
?????¨
問題的原因我們找到了,只要將GB2312轉(zhuǎn)換成UTF-8編碼就能顯示正常了,可是如果轉(zhuǎn)換呢,大家注意看代碼2,我再測試一下想法
代碼4:
System.useCodepage=true;
var gb:String=unescape("丁香花");
System.useCodepage=false;
trace(gb);
trace(escape(gb));
輸出結(jié)果:
丁香花
涓侀?鑺
代碼1
var s:Sound=new Sound(this);
s.loadSound("dxh.mp3",false);
s.onID3=function(){
trace(this.id3.songname);
}
輸出結(jié)果是:
?&IExcl;???
dxh.mp3的ID3v1的標簽正確應(yīng)該是songname="丁香花",看來FLASH在轉(zhuǎn)碼上出現(xiàn)了問題。我們來看看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;i<songname.length;i ){
trace(songname.charCodeAt(i));
}
}
輸出結(jié)果是:
182
161
207
227
187
168
我們使用計算器轉(zhuǎn)換成16進制就是"B6 A1 CF E3 BB A8";
正好是"丁香花"的GB2312編碼,我們還是用FLASH來試試
System.useCodepage=true;
trace(unescape("丁香花"));
輸出結(jié)果是:
丁香花
那么為什么代碼1出現(xiàn)亂碼現(xiàn)象,是因為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));
}
結(jié)果是:
?????¨
問題的原因我們找到了,只要將GB2312轉(zhuǎn)換成UTF-8編碼就能顯示正常了,可是如果轉(zhuǎn)換呢,大家注意看代碼2,我再測試一下想法
代碼4:
System.useCodepage=true;
var gb:String=unescape("丁香花");
System.useCodepage=false;
trace(gb);
trace(escape(gb));
輸出結(jié)果:
丁香花
涓侀?鑺
相關(guān)文章
flash cs6想要實現(xiàn)鼠標跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標跟隨效果的教程,需要的朋友可以參考下2019-05-19
Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友2018-03-11
flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.fzitv.net/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2018-01-25
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18
Flash怎么設(shè)置元件坐標?flash使用代碼設(shè)置元件的坐標的教程
Flash怎么設(shè)置元件坐標?flash中導(dǎo)如的元件需要添加坐標,該怎么定位元件坐標呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標的教程,需要的朋友可以參考下2017-10-11
Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下2017-05-23
Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2017-04-23











