zoukankan      html  css  js  c++  java
  • 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 "";
    }
  • 相关阅读:
    md5
    表空间
    create_index
    非额度合同和额度合同
    如何在linux中查找python安装包的路径
    Golang中的SingleFlight与CyclicBarrier
    linux安装protoc
    protobuf 的优缺点
    Xshell 连接 VirtualBox
    限制 input 输入框只能输入纯数字
  • 原文地址:https://www.cnblogs.com/wbcms/p/1222656.html
Copyright © 2011-2022 走看看