zoukankan      html  css  js  c++  java
  • C# asp.net页面通过URL参数传值中文乱码问题解决办法

    1.编码string state=Server.UrlEncode(stateName.Text.Trim());
    Response.Redirect("aaa.aspx?state="+state+"");

    2.解码(aaa.aspx)

    string state= Server.UrlDecode(Request.QueryString["state"].ToString());

    是GB2312编码的,参数传值是UTF-8编码的

     

    解决的方法一般有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("中华人明共和国")) ;

  • 相关阅读:
    mysql中的内置函数
    python之旅九【第九篇】socket
    docker的安装,升级,与删除(最新版)
    consul与docker的使用
    python之旅第八篇--异常
    python的图形模块PIL小记
    python之旅七【第七篇】面向对象之类成员
    python之旅六【第七篇】面向对象
    zabbix上监控docker
    zabbix在ubuntu16.04上的安装
  • 原文地址:https://www.cnblogs.com/lgx5/p/5816841.html
Copyright © 2011-2022 走看看