美文网首页
将URL中的UTF-8字符串转成中文字符串

将URL中的UTF-8字符串转成中文字符串

作者: 喜剧之王爱创作 | 来源:发表于2020-02-04 13:36 被阅读0次
    1.jpg

    我们在前端开发中,经常会遇到通过URL传递参数的情况,如这样:

    localhost:8000/apple?key1=1&key2=2
    

    然后我们可以通过location对象中的search属性获取上面的参数,但当你传递的值是汉字的时候,就会出现这种情况

    微信图片_20200204133419.png
    如这样的UTF-8字符串,我们用起来就会很尴尬,这里为大家提供一个方法,将这样的UTF-8编码转换回我们原先的汉字
    //将编码转换成字符
        function utf8ToChar(str) {
            var iCode, iCode1, iCode2;
            iCode = parseInt("0x" + str.substr(1, 2));
            iCode1 = parseInt("0x" + str.substr(4, 2));
            iCode2 = parseInt("0x" + str.substr(7, 2));
            return String.fromCharCode(((iCode & 0x0F) << 12) | ((iCode1 & 0x3F) << 6) | (iCode2 & 0x3F));
        }
        
        //将URL中的UTF-8字符串转成中文字符串
        function getCharFromUtf8(str) {
            var cstr = "";
            var nOffset = 0;
            if (str == "")
                return "";
            str = str.toLowerCase();
            nOffset = str.indexOf("%e");
            if (nOffset == -1)
                return str;
            while (nOffset != -1) {
                cstr += str.substr(0, nOffset);
                str = str.substr(nOffset, str.length - nOffset);
                if (str == "" || str.length < 9)
                    return cstr;
                cstr += utf8ToChar(str.substr(0, 9));
                str = str.substr(9, str.length - 9);
                nOffset = str.indexOf("%e");
            }
            return cstr + str;
        }
    

    好了,拿去用吧!

    相关文章

      网友评论

          本文标题:将URL中的UTF-8字符串转成中文字符串

          本文链接:https://www.haomeiwen.com/subject/uwsrxhtx.html