首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

哪些高人能解释一下这段as3代码?该如何解决

2012-03-23 
哪些高人能解释一下这段as3代码?????var s:String你var bs:ByteArraynew ByteArray()bs.writeMultiB

哪些高人能解释一下这段as3代码?????
var s:String="你";
var bs:ByteArray=new ByteArray();
bs.writeMultiByte(s,"utf8");
trace(bs[0]);
trace(bs[1]);
trace(bs[2]);

结果:

196
227
undefined
[SWF] E:\flexTest\TestAs\bin-debug\TestAs.swf - 1,317 bytes after decompression

疑问:

" 你 "的unicode编码:4F60 utf8编码:E4BDA0

那为什么上段代码把" 你 "解析成 C4E3

但如果把bs.writeMultiByte(s,"utf8");改为bs.writeUTFBytes()一切又正常呢.

请问bs.writeMultiByte(s,"utf8");改为bs.writeUTFBytes()有什么区别吗???????

[解决办法]
还有" 你 "解析成 C4E3 
应该输出的是GBK的编码.
[解决办法]
" 你 "的unicode编码:4F60 utf8编码:E4BDA0

那为什么上段代码把" 你 "解析成 C4E3,c4e3是你的本地计算机xp的编码方式,也就是gb2312,

bs.writeMultiByte(s,"utf8");这段代码是错的,as3是不会按utf-8编码的,正确的写法:

bs.writeMultiByte(s,"utf-8");

热点排行