中文传值乱码问题

赶着做一个客户做差不多了发现一个问题,就是搜索那块搜索中文的时候用Request.QueryString获取到的是乱码以至于结果不准,是从html中往aspx里面传值,我知道当都为aspx的时候我们可以用加码(server.UrlEncode)和解码(server.UrlDecode)来解决,后来找了点资料才发现传值之前只要使用escape()来处理一下就好了,试了一下果然通过了,

伊凡的原文如下:
url传递中文的解决方案总结    
  1.设置web.config文件。(我不喜欢设置成这样)    
  <system.web>    
  ......    
  <globalization   requestEncoding="gb2312"   responseEncoding="gb2312"   culture="zh-CN"   fileEncoding="gb2312"   />    
  ......    
  </system.web>    
     
  或者:  
  aspx文件中:  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
   
  2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。    
  >>   进行传递    
  string   Name   =   "中文参数";    
  Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));    
   
  >>   进行接收    
  string   Name   =   Request.QueryString["Name"];    
  Response.Write(Server.UrlDecode(Name));    
  或者:  
     
  NavigateURL='<%#   "WebForm2.aspx?Singer="   +   HttpUtility.UrlEncode("中国人",   System.Text.Encoding.GetEncoding("GB2312"))   %>'  
   
   
  3.如果是从   .HTML   文件向   .Aspx   文件进行传递中文参数的话(即不从后台用   Redirect()方法进行   Url   转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。    
  >>   进行传递    
  <script   language="JavaScript">    
  function   GoUrl()    
  {    
  var   Name   =   "中文参数";    
  location.href   =   "B.aspx?Name="+escape(Name);    
  }    
  </script>    
  <body   onclick="GoUrl()">    
  >>   进行接收    
  string   Name   =   Request.QueryString["Name"];    
  Response.Write(Server.UrlDecode(Name));    
   
  一般来说。设置web.config文件就可以了。但是如果你用   JavaScript   调用   webservice   方法的话(往webservice里面传递中文参数)。设置   web.config   文件好象无效。    
   
  ————————————————————  
  在html中实现编解码:  
   
  <script   language="javascript">  
  function   openUrl(src)  
  {  
      var   strUrl=escape(src);  
      window.open(strUrl);  
  }  
     
   
  function   change_url(src)  
  {  
    document.location.href=escape(src);  
  }  
     
  </script>      
     
  在新窗口保存  
  <a   href='javascript:openUrl("css/20040603123628交易中心烟叶网上集中交易系统合同.doc");'   >20040603123628交易中心网上集中交易系统合同</a>  
     
     
  当前位置保存,无闪烁。  
  <a   href="#"   onclick=javascript:change_url("css/20040603123628交易中心烟叶网上集中交易系统合同.doc")>20040603123628交易中心网上集中交易系统合同</a>  
     
  注意:路径中的斜线是:“/”,而不是“\”,否则也不行啊。  


用javascript提交数据如:window.open();能否不打开新窗口,直接把server返回的数据放到
我的意思是你可以在   window.open中打开自己。然后把自己重新打印一遍  
  比如,当前页是     test.shtm  
  你可以   open("test.shtm?param=FillForm","_self");  
  然后在:test.shtm中判断param是否为:FillForm,如果是的话,就将页面Form中的各项填充一下不就成了

posted on 2008-07-07 22:40  毛毛亟亟  阅读(2156)  评论(0编辑  收藏  举报

导航