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 "";
    }
  • 相关阅读:
    写程序一定要养成良好习惯程序编码规范
    今天用GRID感觉它严重缺少灵活性
    REPEATER 嵌套
    DATAGRID的困惑。。。
    VB常用函数。。。。
    子父表,就是这么简单。。。。。
    今天解决了DataGrid无刷新全选删除问题。
    看来我还没完全懂DATAGRID。。。
    indexOf 和 lastIndexOf 使用
    javascript 要注意的事项
  • 原文地址:https://www.cnblogs.com/wbcms/p/1222656.html
Copyright © 2011-2022 走看看