问题描述我们上报页面title 偶尔有这样的乱码 类似这样(这是四条乱码):2019å¹´è¾½å®çèä¸æ,"ä¸åå称çé³å°æä»ä¹åºå«,2019å¹´è¾½å®çèä¸æè²å¯¹å£åå¦æçèè¯æ¥åæ¡ä»¶-é«èåæç½, ç¾è¯ºå¾®è·äºå°ï¼MP80ãå¤å°é± è§æ ¼åæ° å¾ç éè´ã-西å问题出现的环境背景及自己尝试过哪些方法发现有的是ua是百度爬虫造成 所以我们过滤掉了ua带spider字符串的情况,但是还是发现有这样的问题相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)title: encodeURIComponent(document.title)
2 回答
![?](http://img1.sycdn.imooc.com/545847d40001cbef02200220-100-100.jpg)
神不在的星期二
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; }
- 2 回答
- 0 关注
- 446 浏览
添加回答
举报
0/150
提交
取消