AS3发送http请求编码不对的解决方法
在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/
分类:
FLASH
标签:
AS3发送http请求编码不对的解决方法
, as3字符串编码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架