Google和百度的关键词编码是不同的,貌似google是utf-8,baidu是GB2312,有很多种方法可以解决编码,以下列出三种方法:
Uri.unescapeDataString(); 是可以对google的大部分中文关键词 编码进行解码,但是不能解码的编码就会造成乱码,不能解百度关键词。
Microsoft.JScript.GlobalObject.decodeURI();可以解码大部分中文关键词编码,但是仍有少部分不能解码不能解百度关键词,需要Microsoft.JScript引用。
HttpUtility.UrlDecode(str,Encoding.Default);可以解百度的关键词编码,可以解码上述两个方法不能解码google关键词,需要System.Web引用。
要同时解决google和百度关键词解码问题可以使用下列方法:
//str为编码后的google或者百度关键词
try
{
.. Microsoft.JScript.GlobalObject.decodeURI(str.Trim()) ...
}
catch {
... HttpUtility.UrlDecode(str,Encoding.Default) ...
}
Microsoft.JScript.GlobalObject.decodeURI()无法解码时候会报错,捕获以后就可以使用HttpUtility.UrlDecode解码。
Uri.unescapeDataString(); 是可以对google的大部分中文关键词 编码进行解码,但是不能解码的编码就会造成乱码,不能解百度关键词。
Microsoft.JScript.GlobalObject.decodeURI();可以解码大部分中文关键词编码,但是仍有少部分不能解码不能解百度关键词,需要Microsoft.JScript引用。
HttpUtility.UrlDecode(str,Encoding.Default);可以解百度的关键词编码,可以解码上述两个方法不能解码google关键词,需要System.Web引用。
要同时解决google和百度关键词解码问题可以使用下列方法:
//str为编码后的google或者百度关键词
try
{
.. Microsoft.JScript.GlobalObject.decodeURI(str.Trim()) ...
}
catch {
... HttpUtility.UrlDecode(str,Encoding.Default) ...
}
Microsoft.JScript.GlobalObject.decodeURI()无法解码时候会报错,捕获以后就可以使用HttpUtility.UrlDecode解码。