在做51返利的接口 处理的
本来说好不编码的,现在又改过来了!
对方是用gb2312get方式请求过来的
请问如何处理gb2312?
之前做过很多都成了?号。
高手快来啊

解决方案 »

  1.   

    用方法urlDecode()过滤下看看。
      

  2.   

    这个解决方法在我的baidu空间里面有
    解决方法:在web.config中加入globalization节点<configuration> 
    <system.web>   
              <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> 
          </system.web> 
    </configuration>在html代码中加入<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      

  3.   

    你做接口?
    应该让对方遵循你的规则System.Text.Encoding encoding = System.Text.Encoding.UTF8;//.Default
    encoding.GetString(str);
      

  4.   

    你的项目web.confic中,把
    <compilation debug="true">
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
    </compilation>
    设置为全局编码看看。
      

  5.   

     HttpUtility.UrlDecode()得到的是:�첨
    不行啊
      

  6.   

    用这个 : HttpUtility.UrlDecode(String, Encoding) 
      

  7.   

    解决的方法一般有3种:1.设置web.config文件<system.web> ...... <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> ...... </system.web> 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 >> 进行传递string Name = "中文参数"; Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)) ; >> 进行接收string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name)) ; 3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。 >> 进行传递<script language="JavaScript"> function GoUrl() { var Name = "中文参数"; location.href = "B.aspx?Name="+escape(Name) ; } <body onclick="GoUrl()"> >> 进行接收string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name)) ; 总结:一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。 或用Response.Redirect("test1.aspx?111="+System.Web.HttpUtility.UrlEncode("中华人明共和国")) ; //建议使用最后如果是从其他的页面获取中文参数没有乱码,那就更简单了 string message ="http://localhost/Test/test1.aspx?111="+System.Web.HttpUtility.UrlEncode("中华人明共和国"); http://你要获取某个页面的返回值的地址"//发送请求 HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(message) ;//接受请求 HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse() ; Stream receiveStream = myHttpWebResponse.GetResponseStream() ; StreamReader readStream = new StreamReader(receiveStream, System.Text.Encoding.GetEncoding("GB2312")) ;//此为要取页面的返回值输出的返回结果 returnValue = readStream.ReadToEnd();
      

  8.   

    给你个参考思路:你说要的是gb2312编码,所以你写的程序就一定要是gb2312编码,只有对应起来才不会出现乱码,至于你要设置整个项目的编码,我也说了,在你的项目web.confic中,把
    <compilation debug="true">
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
    </compilation>
    里面设置,如果你是具体的某个页面编码,可以改标题里面的:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    不要一遇到问题就说急啊急,明白原理,然后找到解决的办法还不容易!
      

  9.   

    HttpUtility.UrlDecode("gb2312 编码字符串", System.Text.Encoding.GetEncoding("GB2312"));
      

  10.   

    解决的方法一般有3种:1.设置web.config文件<system.web> ...... <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> ...... </system.web> 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 >> 进行传递string Name = "中文参数"; Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)) ; >> 进行接收string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name)) ; 3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。 >> 进行传递<script language="JavaScript"> function GoUrl() { var Name = "中文参数"; location.href = "B.aspx?Name="+escape(Name) ; } <body onclick="GoUrl()"> >> 进行接收string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name)) ; 总结:一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。 或用Response.Redirect("test1.aspx?111="+System.Web.HttpUtility.UrlEncode("中华人明共和国")) ; // 建议使用最后如果是从其他的页面获取中文参数没有乱码,那就更简单了 string message ="http://localhost/Test /test1.aspx?111="+System.Web.HttpUtility.UrlEncode("中华人明共和国"); http://你要获取某个页面的返回值的地址"//发送请求 HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(message) ;//接受请求 HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse() ; Stream receiveStream = myHttpWebResponse.GetResponseStream() ; StreamReader readStream = new StreamReader(receiveStream, System.Text.Encoding.GetEncoding("GB2312")) ;//此为要取页面的返回值输出的返回结果 returnValue = readStream.ReadToEnd();学习ing....