zoukankan      html  css  js  c++  java
  • .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"));

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

  • 相关阅读:
    通知协议KVO的用法
    UIImageView用法
    默默的学习!
    多输入参数的方法
    一本书的摘录
    实例、局部、静态变量(java)
    分数相加的例题
    类的继承
    多线程
    单例
  • 原文地址:https://www.cnblogs.com/nightswatch/p/4250912.html
Copyright © 2011-2022 走看看