zoukankan      html  css  js  c++  java
  • js 编码问题

    //字符转换为UTF-8编码
    function encutf8(s1) {
             var stringArray = new Array();
             for(var j=0; j<s1.length;j++){
                   stringArray[j] = escape(s1.charAt(j)).replace("%",""); 
               }
        
            var sa = stringArray;
            
            var retV = "";
            
            for (var i = 0; i < sa.length; i++) {
                
                if (sa[i].length > 1 && sa[i].substring(0, 1) == "u") {
                    retV += Hex2Utf8(Str2Hex(sa[i].substring(1, 5)));
                }else if(sa[i].length == 2){
                    //转义字符和标点符号
                    retV += "%" + sa[i];
                } 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++) {
            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 "";
    }
    

      在js调用ios的时候,如果是中文必须将其编码。此处为编码为utf-8

  • 相关阅读:
    FZU.Software Engineering1816 ·The Second Assignment of the Team
    18软工实践-第五次作业-结对作业2
    福大软工1816 · 第四次作业
    软件工程实践第三次作业——结对作业(一)
    软工第二次作业——个人项目
    福大软工1816 · 团队现场编程实战(抽奖系统)
    Alpha 冲刺 (3/10)
    Alpha 冲刺 (2/10)
    Alpha 冲刺 (1/10)
    福大软工 · 第七次作业
  • 原文地址:https://www.cnblogs.com/wcp-spring/p/3458188.html
Copyright © 2011-2022 走看看