" id="b1img" alt="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO" title="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO">
  • " alt="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO" title="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO" />
  • " alt="Windows/Linux服务器运维技术支持 环境搭建、应用发布、服务器管理、虚拟化、云计算" title="Windows/Linux服务器运维技术支持 环境搭建、应用发布、服务器管理、虚拟化、云计算" />
  • " alt="高校/小型企业网络运维与建设免费技术支持,网络规划、网络优化、故障排除、网络管理" title="高校/小型企业网络运维与建设免费技术支持,网络规划、网络优化、故障排除、网络管理" />

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

程序设计2008-03-08 itlogger阅读(1,070) 评论(1)

方法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樵客
文章地址:http://www.itlogger.com/program/463.html
标签:, ,
相关文章

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

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

发表评论

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