• js的utf8编码


    可以解决asp.net request.Querystring["中文"] 乱码的问题!
    function EncodeUtf8(s1)
    {
    var s 
    = escape(s1);
    //alert(s);
    var sa = s.split("%");
    var retV 
    ="";
    if(sa[0!= "") retV = sa[0];
    for(var i = 1; i < sa.length; i ++)
    {
    if(sa[i].substring(0,1== "u")
    {

    retV 
    += Hex2Utf8(Str2Hex(sa[i].substring(1,5)));
    retV 
    += sa[i].substring(5,100);//垃圾猪注:我改进了下算法,支持存在非中文字符了,中间之间长度应该不会超过100个吧.不然就++吧
    }

    else
    {
    retV 
    +=  sa[i];
    }

    }

    return retV;
    }


    //----------------------------------------------------------------------------
    function Str2Hex(s)
    {
    var c 
    = "";
    var n;
    var ss 
    = "0123456789ABCDEF";
    var digS 
    = "";
    for(var i = 0; i < s.length; i ++)
    {
    = s.charAt(i);

    = ss.indexOf(c);

    digS 
    += Dec2Dig(eval(n));


    }

    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)
    {
    += '1';
    n1 
    = n1 - n2;
    }

    else
    {
    += '0';
    }

    }

    //alert(s);
    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(23 - i);
    }

    return retV;
    }

    return -1;
    }


    //----------------------------------------------------------------------------
    function Hex2Utf8(s)
    {
    var retS 
    = "";
    var tempS 
    = "";
    var ss 
    = "";
    if(s.length == 16)
    {
    tempS 
    = "1110" + s.substring(04);
    tempS 
    += "10" + s.substring(410); 
    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 "";
    }
  • 相关阅读:
    《不完美的她》开播,网友:周公子对「白帽子」有点误会吧?
    【Web安全】浅谈缓存XSS漏洞
    十分钟教你轻松掌握「移动PE导出表」,快来学习!
    干货分享丨表哥带你学习导入表及导入表注入
    「原创」萌新也能看懂的ThinkPHP3.2.3漏洞分析
    精选好文丨简析对称加密、非对称加密和混合加密
    工程师成长道路语录(转)
    在线画UML图的工具
    6种有效的开发模型(转)
    空降经理人的挑战 (原创)
  • 原文地址:https://www.cnblogs.com/wbcms/p/1222656.html
Copyright © 2020-2023  润新知