CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

地址栏中接受中文参数时乱码的问题,,,请教!!

楼主iiceberg(rhb)2006-02-06 15:12:10 在 .NET技术 / ASP.NET 提问

如果传递的值是中文,,取出的值是乱码,,用SERVER。URLDECODE也不行,,该怎么办???  
   
  注:在传递之前先进行编码,,这个暂时不做考虑  
   
   
  问题就是如何正确取出地址栏中中文的参数,,请大侠们帮忙!!! 问题点数:20、回复次数:8Top

1 楼jinzhouk()回复于 2006-02-06 15:31:19 得分 0

如果用URL传中文,一定要先用UrlEncode去做编码的。如果用Form来Post的话,可以不用。  
   
  否则,程序在URL中读不到中文,只有空字符。Top

2 楼lee_wei(小屁孩的大理想)回复于 2006-02-06 15:33:07 得分 0

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/合同.doc");'   >交合同</a>  
     
     
  当前位置保存,无闪烁。  
  <a   href="#"   onclick=BLOCKED   SCRIPTchange_url("css/合同.doc")>合同</a>  
     
  注意:路径中的斜线是:“/”,而不是“\”,否则也不行啊。Top

3 楼yuesongboy(温柔一刀)回复于 2006-02-06 15:39:19 得分 0

楼上不错~~做个记号,回家整理Top

4 楼wsxqaz(原来可以改昵称)回复于 2006-02-17 23:52:01 得分 0

标记Top

5 楼jianyi0115(随意)回复于 2006-02-18 00:30:54 得分 0

对传递的值先编码  
   
  客户端编码函数:   escape()Top

6 楼stpangpang(胖在一方)回复于 2006-02-18 01:06:48 得分 0

 
  HttpUtility.UrlEncode   已重载。对   URL   字符串进行编码,以便实现从   Web   服务器到客户端的可靠的   HTTP   传输。    
   
  HttpUtility.UrlDecode   已重载。将已经为在   URL   中传输而编码的字符串转换为解码的字符串。Top

7 楼yangli_yl2004(杨李)回复于 2006-04-26 08:58:43 得分 0

upTop

8 楼pol000(糊涂)回复于 2006-04-30 10:02:02 得分 0

markTop

相关问题

  • 请教一下参断传递的问题,在地址栏中可以见,这样有问题,我想把这样参数隐藏或变成乱码之类的显示,
  • 如何解决地址栏中汉字变成乱码的问题、谢谢!
  • 关于utf页面在地址栏中输入中文参数的问题
  • 关于utf页面在地址栏中输入中文参数的问题
  • ActiveX文档(vbd)如何获取浏览器URL地址栏中的参数
  • 在程序中怎么判断地址栏中有几个传递参数?
  • url地址参数如果是日文的话,读取后有乱码
  • window.open打开新窗口,如何让它在地址栏中不显示"?"后面的参数???高手指教!!!
  • 在ie的地址栏中直接输入perl程序的参数,这些参数怎样获得啊,里面的程序为什么不行,谢谢!!
  • HTTP参数乱码问题

关键词

  • 中文
  • 编码
  • 文件
  • 解码
  • server
  • 参数
  • 传递
  • urldecode
  • 字符串
  • 接收

得分解答快速导航

  • 帖主:iiceberg

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo