問題描述我們上報(bào)頁(yè)面title 偶爾有這樣的亂碼 類似這樣(這是四條亂碼):2019?1′è????????è??????,"??????????§°???é?3??°???????1???o???,2019?1′è????????è????????è?2?ˉ1??£????-|??????è??èˉ???¥?????????-é??è???????????, ???èˉo???è·??o???°???MP80????¤??°?é?± è§?? ??????° ?????? é??è′-???-è¥????問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法發(fā)現(xiàn)有的是ua是百度爬蟲造成 所以我們過濾掉了ua帶spider字符串的情況,但是還是發(fā)現(xiàn)有這樣的問題相關(guān)代碼// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)title: encodeURIComponent(document.title)
2 回答

神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
問題解決了,看的這個(gè)博客
var semersList = [ "??????????§°???é?3??°???????1???o???", "asdsad??????????§°???é?3??°???????1???o???", "2019?1′è????????è????????è?2?ˉ1??£????-|??????è??èˉ???¥?????????-é??è???????????", "aksdklh~*(^&*^@%#@)", "2019大撒asdsa旦阿斯asd", "?°??¥???3èˉ????èˉ??????????é????????" ] 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函數(shù)用于對(duì)除英文字母外的字符進(jìn)行編碼。如“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); // 強(qiáng)制告訴從URL中拿到的中文是utf-8編碼,轉(zhuǎn)碼成URI后在解碼URI,成為中文進(jìn)行網(wǎng)絡(luò)傳輸 } 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; }
- 2 回答
- 0 關(guān)注
- 457 瀏覽
添加回答
舉報(bào)
0/150
提交
取消