• 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 "";
    }
  • 相关阅读:
    Magisk+Xposed+Root switch+Pokémon GO
    [数据库连接池] Java数据库连接池--DBCP浅析.
    [C#反射]C#中的反射解析及使用.
    [Java工具]Java常用在线工具集合.
    [Java拾遗五]使用Session防止表单重复提交
    [Java拾遗四]JavaWeb基础之Servlet_Request&&Response
    [Java拾遗三]JavaWeb基础之Servlet
    [Java拾遗二]Tomact及Http 部分总结.
    [Java拾遗一] XML的书写规范与解析.
    [数据库操作]Java中的JDBC的使用方法.
  • 原文地址:https://www.cnblogs.com/wbcms/p/1222656.html
Copyright © 2020-2023  润新知