用户提交的参数有的是GB2312 编码,有的是UTF-8编码,总是只能正确接收一种编码,请问我如何才能正确得到两种编码的参数?

解决方案 »

  1.   

    转贴.....
    url传递中文的解决方案 
    1.设置web.config文件。(我不喜欢设置成这样) 
    <system.web> 
    ...... 
    <globalization requestEncoding="gb2312" respon_seEncoding="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); 

    </script> 
    <body on_click="GoUrl()"> 
    >> 进行接收 
    string Name = Request.QueryString["Name"]; 
    Response.Write(Server.UrlDecode(Name)); 一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。
      

  2.   

    to:adandelion(猪头)
    这样实现不了因为客户传递过来的参数是从不同网站传过来的,我无法控制,我只能在接收时转换成正确编码!
      

  3.   

    to: Mirricle(Miracle Supply) 能不能详细说说步骤?
      

  4.   

    比如说我现在得到的是GB2312编码的串,而我是用utf-8接收的
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" />我如何才能将接收到的字符串还原成正确的字符?
      

  5.   

    GB2312不是两个字节一个汉字吗
    有个十六进制的范围好像是A1A1到什么来着你看看你得到的串 每两个字节都在不在这个方位内如果在就按GB2312的解  不在就按UTF-8的解
      

  6.   

    http://dev.csdn.net/article/74/74590.shtm
    看看这篇 可能有点用