• 专心滴打铁   2014/8/18 11:51:00
  • 如何解决ASP.NET URL传递中文时乱码的问题
  • 关键字: ASP.NET URL乱码 编码规则
  •  一下全面都是从网上摘抄过了的,但是有时还是不是很管用,所有建议最好不要传递中文参数。

    解决的方法一般有3种:

    1.设置web.config文件
    1
    2
    3
    4
    5
    6
    <system.web
    ...... 
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" 
    culture="zh-CN" fileEncoding="gb2312" /> 
    ...... 
    </system.web

    2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 
    1
    2
    3
    4
    5
    6
    7
    // 进行传递
    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 文件好象无效。 
    或用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Response.Redirect("test1.aspx?111="+
    System.Web.HttpUtility.UrlEncode("中华人明共和国")) ; 
    //建议使用最后如果是从其他的页面获取中文参数没有乱码,那就更简单了 
    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();

大家的回答
  • 还没有人回答这个问题哦,亲,快来帮帮TA吧
  •   我来回答
  • 注册用户登录后才能发表评论,请 登录注册
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款