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 οnclick= "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= "# " οnclick=BLOCKED SCRIPTchange_url( "css/合同.doc ")> 合同 </a>
注意:路径中的斜线是:“/”,而不是“\”,否则也不行啊。