Vista+IIS7+ASP解决传递中文参数乱码问题

方法1:

web.config里修改  

<globalization   requestEncoding= “GB2312 ”   responseEncoding= “GB2312 ”   />  

方法2:

传送时要将要传送的中文字符用Server.UrlEncode方法编码,  

接收时使用Server.UrlDecode来解码.  

例子:

Response.Write( ” <scrIPt> window.open( ‘allpage1.aspx?date= ”   +   Calendar1.SelectedDate.ToString( “yyyy/MM/dd “)   +   ”   23:59:59&bm= ”   +   Server.UrlEncode(DropDownList2.SelectedValue.Trim())   +   ” ‘, ‘test ‘, ‘resizable=yes,status=yes,toolbar=no,menubar=no,location=no ‘); </script> “);

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>      
       
注意:路径中的斜线是:“/”,而不是“\”。

来源:http://topic.csdn.net/u/20070518/13/dc193752-85f9-48b6-8043-68fe73c8e87d.html

转载请注明 :IT樵客

此条目发表在 程序设计 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

关于 logger

2010年网络规划设计师证书寻挂靠!

Vista+IIS7+ASP解决传递中文参数乱码问题》有 1 条评论

  1. 试了第2种方法不错,顶!

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>