读书人

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

发布时间: 2012-03-23 12:06:21 作者: rapoo

哪些高人能解释一下这段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");

读书人网 >flex

热点推荐