在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
近些日子在做一个用C#访问webservise的程序,由于需要传递中文参数去请求网站,所以碰到了中文编码问题。我们知道像百度这种搜索引擎中,当用户输入中文关键字后,它会把中文转码,以确保在Url中不会出现编码问题。比如在搜索框中输入“博客园”三个字,会看到URl如下所示:http://www.baidu.com/s?wd=博客园&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=99570746_hao_pg,但是当你把它复制下来后,会发现是这样的:http://www.baidu.com/s?wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=99570746_hao_pg,其实他们代表的是用一样的意思,只是编码不同而已。我们在用Url传递中文参数是也要做相应的转码处理。 回到正题,.NET C#中如何对中文转码呢?以下是我解决问题的方法: System.Web.HttpUtility.UrlEncode(string prams): A.按照UTF-8进行编码 : 该方法括号里面就收一个字符串,比如你要转码的中文参数,返回string; 示例:string Url = "cityname = " + System.Web.HttpUtility.UrlEncode("成都")+"&key=1e2r3r4t5y"; B.还有一种是按照GB2312进行编码 : 具体使用哪种编码可根据服务器接受的编码设置,一般用第一种就行了。
|
请发表评论