在做项目的时候需要对(Internet) Search Engine导入链接进行Keyword analysis.
Google 用的是js'encodeURI()函数,可直接用
decodeURI()解码。
Baidu 则用的是:
System.Web.HttpUtility.UrlEncode("编码", System.Text.Encoding.GetEncoding("gb2312"))的编码,
解码则需要用到:
System.Web.HttpUtility.UrlDecode("%B1%E0%C2%EB", System.Text.Encoding.GetEncoding("GB2312")));
这个需要用的ASP.NET C#.以下提供一个Javascript操作进行解码的方法.
<
script language
=
"
vbscript
"
>
Function str2asc(strstr)
str2asc = hex ( asc (strstr))
End Function
Function asc2str(ascasc)
asc2str = chr (ascasc)
End Function
</ script >
Function str2asc(strstr)
str2asc = hex ( asc (strstr))
End Function
Function asc2str(ascasc)
asc2str = chr (ascasc)
End Function
</ script >
UrlEncode:
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
function UrlEncode(str)
{
var ret="";
var strSpecial="!\"#$%&()*+,/:;<=>?[]^`{|}~%"; var tt="";
for(var i=0;i<str.length;i++)
{
var chr = str.charAt(i);
var c=str2asc(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f)
{
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}
else
{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
UrlDecode:
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++)
{
var chr = str.charAt(i);
if(chr == "+")
{
ret+=" ";
}
else if(chr=="%")
{
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f)
{
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}
else
{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}
else
{
ret+= chr;
}
}
return ret;
}