美文网首页
将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