function xxxx(str) { var b = ‘\u20AC\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\u017D\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\u017E\u0178’; var c = ‘\u0080\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008E\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009E\u009F’; var r = new String(str); var d=’’,t=0; for (var i = 0,j=r.length; i < j; i++) { t = r.charCodeAt(i); if(t<16){ d+=‘0’+t.toString(16); }else if(t <=255){ d+=t.toString(16); }else{ d+=c.charCodeAt(b.indexOf(r.charAt(i))).toString(16) } } return d }
@imhered 额 然后呢
将for循环改为while循环(str在很长的情况下有显著效果,性能能提高一个量级)
@struCoder 好的… 试试看.
最后一个判断有可能会出现NaN
???
不太明白new String()
是什么意思,貌似不应该使用这个,难道这能提高性能?