方法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


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