日期:2014-05-19  浏览次数:20654 次

请教各位一个汉字转换的问题?
我想获取搜索引擎中的关键词,用下面方法做了试验,但发现我输入的中文转换成16进制后,在google下用google搜索页面的网址信息加我转换后的关键字可以正常的显示我要查找的内容,但用百度搜索页面网址加转换后的关键字却不能正常显示,百度用的是gb2312。请问各位高手我如何才能将中文转换成百度所能识别的关键字,能在百度中查找我需要的中文关键字呢?

        protected   void   btnChange_Click(object   sender,   EventArgs   e)
        {
                st=System.Web.HttpUtility.UrlEncode(txtcharater.Text);
                txtAccept.Text   =   "http://www.baidu.com/s?wd= "+st+ "&cl=3 ";
               
        }
        protected   void   btnUnChange_Click(object   sender,   EventArgs   e)
        {
                ust   =   System.Web.HttpUtility.UrlDecode(txtAccept.Text);
                string   pageurl   =   txtAccept.Text;
                int   index   =   pageurl.IndexOf( "wd= ");
                int   last   =   pageurl.LastIndexOf( "& ");
                string   pageName   =   pageurl.Substring(index+3,   last-index-3);
                string   Charater;
                Charater   =   System.Web.HttpUtility.UrlDecode(pageName);
                lblShow.Text   =   pageName;
                lblShowCharater.Text   =   Charater;

        }

------解决方案--------------------
百度是GB2312编码
这样
ust = System.Web.HttpUtility.UrlDecode(txtAccept.Text,System.Text.Encoding.GetEncoding( "Gb2312 "));
------解决方案--------------------
要实现与Web页面正常通讯正常解码,则需要
System.Web.HttpUtility.UrlEncode(strArg, System.Text.UnicodeEncoding.GetEncoding( "GB2312 ")).ToUpper()
就可以实现与百度相同的结果