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中的各项填充一下不就成了
  • 相关阅读:
    maven 执行mvn package/clean命令出错
    IDEA
    贝叶斯
    python基础之python基本数据类型
    python基础(一)python数据类型,条件,循环
    ...
    读取70开头的xml,gbk转成utf-8
    CSS实现多个Div等高,类似表格布局
    JBOSS 5 session时间配置
    padding
  • 原文地址:https://www.cnblogs.com/biandande/p/1237782.html
Copyright © 2011-2022 走看看