zoukankan      html  css  js  c++  java
  • 中文传值乱码问题

    赶着做一个客户做差不多了发现一个问题,就是搜索那块搜索中文的时候用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中的各项填充一下不就成了
  • 相关阅读:
    主流液晶显示器尺寸参数
    不能访问网络位置的解决方法(转)
    打开Word提示你正试图运行的函数包含有宏或需要宏语言支持的内容
    教你如何防“蹭网”
    ASA数据库瘦身(原创)
    多种解决:“Word无法启动转换器mswrd632.wpc”方法
    百兆线与千兆线网线制作方法
    linux常用命令
    DefaultIfEmpty
    实现手机发送验证码 进行验证
  • 原文地址:https://www.cnblogs.com/biandande/p/1237782.html
Copyright © 2011-2022 走看看