为了账号安全,请及时绑定邮箱和手机立即绑定

上报页面title有乱码?

上报页面title有乱码?

PHP
一只斗牛犬 2019-03-01 06:03:04
问题描述我们上报页面title 偶尔有这样的乱码 类似这样(这是四条乱码):2019年辽宁省职业æ,"不同名称的阳台有什么区别,2019年辽宁省职业教育对口升学招生考试报名条件-高职单招网, 百诺微距云台,MP80【多少钱 规格参数 图片 采购】-西域问题出现的环境背景及自己尝试过哪些方法发现有的是ua是百度爬虫造成 所以我们过滤掉了ua带spider字符串的情况,但是还是发现有这样的问题相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)title: encodeURIComponent(document.title)
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

问题解决了,看的这个博客

var semersList = [                "不同名称的阳台有什么区别",                "asdsad不同名称的阳台有什么区别",                "2019年辽宁省职业教育对口升学招生考试报名条件-高职单招网",                "aksdklh~*(^&*^@%#@)",                "2019大撒asdsa旦阿斯asd",                "尚好佳译翻译服务有限公司"
            ]
            mapObjArray = []
            semersList.forEach(function(elem) {                console.log('-----')                console.log(elem)                console.log(EncodeUtf8(elem))                console.log(decodeURIComponent(EncodeUtf8(elem)))                console.log(decodeUtf8_in_Url(elem));
            });            function EncodeUtf8(s1) {                var s = escape(s1);                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)));
                    } else retV += "%" + sa[i];
                }                return retV;
            }            

            function decodeUtf8_in_Url(s1) {                // escape函数用于对除英文字母外的字符进行编码。如“Visit W3School!”->"Visit%20W3School%21"
                var s = escape(s1);                var sa = s.split("%"); //sa[1]=u6211
                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)));                        if (sa[i].length >= 6) {
                            retV += sa[i].substring(5);
                        }
                    } else retV += "%" + sa[i];
                }                return decodeURI(retV);   // 强制告诉从URL中拿到的中文是utf-8编码,转码成URI后在解码URI,成为中文进行网络传输
            }            
            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 "";
            }        
            
            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 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;
            }


查看完整回答
反对 回复 2019-03-28
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

没有源代码,没有抓取方式,没有样例,别人怎么给你调试,全靠猜?

查看完整回答
反对 回复 2019-03-28
  • 2 回答
  • 0 关注
  • 446 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信