.NET C#中处理Url中文编码问题

  近些日子在做一个用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进行编码 :
      string Url = System.Web.HttpUtility.UrlEncode("成都",System.Text.Encoding.GetEncoding("GB2312"));

    具体使用哪种编码可根据服务器接受的编码设置,一般用第一种就行了。

 

转载于:https://www.cnblogs.com/nightswatch/p/4250912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值