wfdoublext 发表于 2013-2-4 20:01:11

js EncodeUtf8

function EncodeUtf8(s1){      var s = escape(s1);      var sa = s.split("%");      var retV ="";      if(sa != "")      {         retV = sa;      }      for(var i = 1; i < sa.length; i ++)      {         if(sa.substring(0,1) == "u")         {               retV += Hex2Utf8(Str2Hex(sa.substring(1,5)));                        }         else retV += "%" + sa;      }            return retV;}function Str2Hex(s){      var c = "";      var n;      var ss = "0123456789ABCDEF";      var digS = "";      for(var i = 0; i < s.length; i ++)      {         c = s.charAt(i);         n = ss.indexOf(c);         digS += Dec2Dig(eval(n));               }      //return value;      return digS;}function Dec2Dig(n1){      var s = "";      var n2 = 0;      for(var i = 0; i < 4; i++)      {         n2 = Math.pow(2,3 - i);         if(n1 >= n2)         {            s += '1';            n1 = n1 - n2;          }         else          s += '0';                }      return s;      }function Dig2Dec(s){      var retV = 0;      if(s.length == 4)      {          for(var i = 0; i < 4; i ++)          {            retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);          }          return retV;      }      return -1;}   function Hex2Utf8(s){   var retS = "";   var tempS = "";   var ss = "";   if(s.length == 16)   {         tempS = "1110" + s.substring(0, 4);         tempS += "10" +s.substring(4, 10);          tempS += "10" + s.substring(10,16);          var sss = "0123456789ABCDEF";         for(var i = 0; i < 3; i ++)         {            retS += "%";            ss = tempS.substring(i * 8, (eval(i)+1)*8);                                                retS += sss.charAt(Dig2Dec(ss.substring(0,4)));            retS += sss.charAt(Dig2Dec(ss.substring(4,8)));         }         return retS;   }   return "";}  
页: [1]
查看完整版本: js EncodeUtf8