Querystring中传递中文出现乱码,丢失的解决方法

有时我们会通过QueryString来传参(就是在url中传参),但是你会发现,汉字会出现乱码或者最后一个汉字会不知所以的丢失。在网上查找,主要有以下2种解决方法: 

 

 1 在asp.net中可以用Server.UrlEncode(参数)将参数加密,然后在QueryString传递,在接受端跟平常一样将参数接受下来,然后用Server.UrlDecode(参数)将参数解密,就OK了。在javascript中可以用encodeurl和decodeurl来加解密。 

  写Url的时候使用Server.UrlEncode方法  
  如你的Url:  
  http://'..../test.aspx?nf=2003&bmmc=代数  
  改成:  
  http://'..../test.aspx?nf=2003&bmmc='<%#   Server.UrlEncode("代数")   %>'  
   
  然后在使用参数的网页加入:  
  Request.QueryString("nf")  
  Server.UrlDecode(Request.QueryString("bmmc"))  
   
  就行了,我就用这个方法传递中文的,字数仅仅受Url的长度限制。

 

 

2.  在Web Config中添加下列:<globalization requestEncoding="gb2312" responseEncoding="gb2312" />

   < system.web >
        
<!--  
            设置 compilation debug
= " true "  将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 
true
        
-->
        
< globalization requestEncoding = " gb2312 "  responseEncoding = " gb2312 "   />


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值