function Escape(strS:String):String
{
var iCount:Number;
var strD:String;
var strChar:String;
var iChar:Number;
//数字对应的字符
{
var iCount:Number;
var strD:String;
var strChar:String;
var iChar:Number;
//数字对应的字符
var arrHex:Array=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
strD="";
for(iCount=0;iCount<strS.length;iCount++)
{
strChar=strS.charAt(iCount);
if(strChar==" ")
strD+=" ";
//不变的字符
strD="";
for(iCount=0;iCount<strS.length;iCount++)
{
strChar=strS.charAt(iCount);
if(strChar==" ")
strD+=" ";
//不变的字符
else if(("A"<=strChar && strChar<="Z") || ("a"<=strChar && strChar<="z") || ("0"<=strChar && strChar<="9"))
strD+=strChar;
else if (strChar=="-" || strChar=="_" || strChar=="." || strChar=="*" || strChar=="+" || strChar=="/")
strD+=strChar;
//小于127的应该被编码的字符
strD+=strChar;
else if (strChar=="-" || strChar=="_" || strChar=="." || strChar=="*" || strChar=="+" || strChar=="/")
strD+=strChar;
//小于127的应该被编码的字符
else if(strChar.charCodeAt(0)<0x007f)
{
strD+="%";
iChar=strChar.charCodeAt(0);
//由于arrHex数组只有16个数字对应的字符,因此一个字节要分成两部分
{
strD+="%";
iChar=strChar.charCodeAt(0);
//由于arrHex数组只有16个数字对应的字符,因此一个字节要分成两部分
//>>>为简单右移
strD+=arrHex[iChar>>>4];
strD+=arrHex[iChar & 0x000f];
}
//其它的字符
strD+=arrHex[iChar & 0x000f];
}
//其它的字符
else
{
//两个字节要分成四个部分处理
{
//两个字节要分成四个部分处理
strD+="%u";
iChar=strChar.charCodeAt(0);
strD+=arrHex[iChar>>>12];
strD+=arrHex[(iChar & 0x0f00)>>>8];
strD+=arrHex[(iChar & 0x00f0)>>>4];
strD+=arrHex[iChar & 0x000f];
}
}
delete arrHex;
return strD;
}
iChar=strChar.charCodeAt(0);
strD+=arrHex[iChar>>>12];
strD+=arrHex[(iChar & 0x0f00)>>>8];
strD+=arrHex[(iChar & 0x00f0)>>>4];
strD+=arrHex[iChar & 0x000f];
}
}
delete arrHex;
return strD;
}