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

来源:互联网 发布:软件组成 编辑:程序博客网 时间:2024/05/01 00:28

有时我们会通过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" />


原创粉丝点击