JavaScript中urldecode有相应的函数,使用方便。但urldecode就需要一些处理,直接上代码
function UrlDecode(zipStr){
var uzipStr = '';
for (var i = 0; i < zipStr.length; i += 1) {
var chr = zipStr.charAt(i);
if (chr === '+') {
uzipStr += ' ';
} else if (chr === '%') {
var asc = zipStr.substring(i + 1, i + 3);
if (parseInt('0x' + asc) > 0x7f) {
uzipStr += decodeURI('%' + asc.toString() + zipStr.substring(i+3, i+9).toString());
i += 8;
}else{
uzipStr += AsciiToString(parseInt('0x' + asc));
i += 2;
}
}else{
uzipStr += chr;
}
}
return uzipStr;
}
function StringToAscii(str){
return str.charCodeAt(0).toString(16);
}
function AsciiToString(asccode){
return String.fromCharCode(asccode);
}
以上代码其实就是把一些特殊字符做处理,主要用到String.charAt()
函数,使用方法
var str = '%e7%90%bc%e5%8f%b0%e5%8d%9a%e5%ae%a2';
var destr = UrlDecode(str);
console.log(destr); // Output: 琼台博客
支持中文解码!