flex中接收非utf-8编码的后台数据
把HTTPService改用URLStream,在complete时间里,用URLStream的readMultiByte方法,第二个参数指定文字编码类型,可以查看一下帮助文档,里面详细写出了支持的编码类型。
我只是在帮助文档里找到的,个人没试过。
///////////////////帮你写完
比说是urlStream的
var gb2312: String = urlStream. readMultiByte(urlStream.bytesAvailable, "gb2312"); //后面的是指定编码
这样的话,字符就正常了...
如果不是使用Stream的方式
比如返回是个字符串 str
var byteArray = new ByteArray();
byteArray.writeMultiByte(str, "gb2312");
byteArray.position = 0;
var newStr: String = byteArray. readMultiByte(byteArray. bytesAvailable, "gb2312");
这样也是可以的
还可以使用URLLoader,但要把URLLoader的dataFormat 改成URLLoaderDataFormat.BINARY
这样得到的是ByteArray...直接读都行...比如是byteArray
var newStr: String = byteArray. readMultiByte(byteArray. bytesAvailable, "gb2312");
我只是在帮助文档里找到的,个人没试过。
///////////////////帮你写完
比说是urlStream的
var gb2312: String = urlStream. readMultiByte(urlStream.bytesAvailable, "gb2312"); //后面的是指定编码
这样的话,字符就正常了...
如果不是使用Stream的方式
比如返回是个字符串 str
var byteArray = new ByteArray();
byteArray.writeMultiByte(str, "gb2312");
byteArray.position = 0;
var newStr: String = byteArray. readMultiByte(byteArray. bytesAvailable, "gb2312");
这样也是可以的
还可以使用URLLoader,但要把URLLoader的dataFormat 改成URLLoaderDataFormat.BINARY
这样得到的是ByteArray...直接读都行...比如是byteArray
var newStr: String = byteArray. readMultiByte(byteArray. bytesAvailable, "gb2312");