使用C#对Google和Baidu中文关键词编码解码

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解码。