AS3发送http请求编码不对的解决方法
来源:互联网 发布:崔永元 转基因 知乎 编辑:程序博客网 时间:2024/06/07 10:29
在ActionScript 3 内部无论出和入都统一使用Unicode,但服务器那边却是千奇百怪的编码,例如Google使用UTF-8,百度似乎是GBK。于是向百度这样的服务端 发出URLRequest请求百分百会出现乱码,无论设置什么Content Type 或者Post Method都如此,因为AS3输出的是UTF,而百度不接受这样的编码。而URLRequest本身也不支持自定义编码,百度服务端用什么编码也不是我 们能控制的,所以烦死人的问题就这样出来了。唯一能让我们控制的只有AS3,所以解决办法还是要从AS3上去考虑。浪费了大量时间去查阅,基本没有人提到 URL编码的问题。最后终于找到解决的思路,就是利用ByteArray对象的编码转换和存储功能,
活用ByteArray类,能处理绝大部分的AS3编码问题。
原理不再多说,一个上午的努力最后转化成这样一个编码的类包:
// ==============================================================
function myUrlEncode(str:String,code:String):String
{
var stringresult:String = "";
var byte:ByteArray =new ByteArray();
byte.writeMultiByte(str,code);
for (var i:int; i<byte.length; i++)
{
stringresult += escape(String.fromCharCode(byte[i]));
}
return stringresult;
}
{
var stringresult:String = "";
var byte:ByteArray =new ByteArray();
byte.writeMultiByte(str,code);
for (var i:int; i<byte.length; i++)
{
stringresult += escape(String.fromCharCode(byte[i]));
}
return stringresult;
}
str是要编码的字符串,code是编码格式
比如
var mystring="小小菜鸟";
mystring=myUrlEncode(mystring,"GBK");
mystring=myUrlEncode(mystring,"GBK");
参考:
http://www.viosem.com/2008/08/as3-utf-8-to-gb-encode/
- AS3发送http请求编码不对的解决方法
- Xcode7发送http请求被拦截的解决方法
- Python发送Http请求时,中文乱码问题的解决方法
- Java发送HTTP请求时编码问题
- Android 发送HTTP请求出现编码问题
- 发送http的post请求
- 发送http请求的过程
- 发送DES-base64编码的HTTP Post请求,并base64-DES解码返回消息
- Firefox和Chrome不断发送http://127.0.0.1:35000/*/requestgrab/请求的原因与解决方法
- ajax中如何将utf-8编码的数据请求发送到gbk编码应用的解决方法
- 发送设置编码的Url请求
- Ajax发送请求的编码问题
- 循环发送ajax请求的解决方法
- 循环发送ajax请求的解决方法
- 发送HTTP请求的两种方式
- 发送Http请求(POST GET)的方法
- 发送Http请求(POST GET)的方法
- http发送get请求的总结
- WPF:下拉列表的简单实现
- 多线程开发
- 将文件内含有的特殊字符还原
- 牛顿运动定律
- 为什么bios将mbr装载到0x7c00地址,0x7c00怎么来的?(翻译)
- AS3发送http请求编码不对的解决方法
- MFC模块的动态链接库DLL以及静态链接库LIB编译后的调用
- 自己写的SqlHelper类
- VC++的可视化解决方案
- 如何在android的XML和java代码中引用字符串常量
- 在VS2010中使用WpdPack
- GODADDY 申请域名的经历
- 三命通会 连载一
- File Read