在URL中传递中文的解决方案

本文详细介绍了如何通过web.config、ASP.net页面配置、参数编码及解码等方法解决中文编码问题,确保网页显示正确。

1.通过web.config来解决

 <system.web>

 <globalization requestEncoding='"gb2312" response/encoding='gb2312" culture="zh-cn" fileEncoding="gb2312"/>

</system.web>

2.通过设置Aspx页面,在head中知道ASPnet同页面请求的编码

 <head runat="server">

<title></title>

 <meta http-equiv="Content_type" content="text/html; charset=gb2312">

</head>

3.在传递中文之前,对将要传递的中文参数进行编码,在接受时进行解码

 编码方式1. HttpUtility.UrlEncode

  是前台的方法:

  <asp:HyperLink ID="Hyper" runat="server"

   NavigateUrl='<%#"b.aspx?name"+httpuility.UrlEncode("中国人",System.Text.Encoding.GetEncoding("GB2312")) %>'
    传递给b

  </asp:HyperLink>

编码方式二、;Server.UrlEncode

  

 是后台的方法:

           string name = "中国人";
            Response.Redirect("b.aspx?name=" + Server.UrlEncode(name));

编码方式三:JavaScript编码传输

    function GoUrl()

  {

    var name="中国人";

   location.href="B.aspx?name="+escape(name);

  }

 

    接受传过来的值

      if(Request["name"]!=null)

    {

      string name=Request["Parm1"];

     Response.Write(Server.UrlEncode(name));

    }

 一般来说设置web.config就行了,如果你用JavaScript调用webservice的话,web.config设置就无效了

4.让机器支持中文

        一:如果上述方法都没弄好的话,就将页面用记事本打开,选择UTF_8作为编码方式,而不是默认的Ansi

        二:打开注册表,确保HkEY_LOCAL_MACHINNE/System/CurrentControlSet/Services/Intinfo/Parameters/FavorDBCS的值为0

      三:修改改数值后,必须运行IISRESET以重启IIS服务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值