当前位置:编程学习 > C#/ASP.NET >>

asp.net url传递中文乱码的解决方案

asp教程.net url传递中文乱码的解决方案

1.设置web.config文件。
<system.web>
......
<globalization requestencoding="gb2312" responseencoding="gb2312" culture="zh-cn" fileencoding="gb2312" />
......
</system.web>
2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
string name = "中文参数";
response.redirect("b.aspx?name="+server.urlencode(name));
>> 进行接收
string name = request.querystring["name"];
response.write(server.urldecode(name));
3.如果是从 .html 文件向 .aspx 文件进行传递中文参数的话(即不从后台用 redirect()方法进行 url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
<script language="网页特效">
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));


实例方法

a项目中
        string url = "http://" + arr[2] + ":111/loginif.aspx?uid=" + server.urlencode(arr[0]) + "&pwd=" + arr[1];   //中文账号转码

        clientscript.registerclientscriptblock(this.gettype(), "this", "<script>window.open('" + url + "')</script>"); 这样传参数 uid传的是中文

b项目里接收 
 userloginif(server.urlencode(request["uid"].tostring()), request["pwd"].tostring());   //中文必须转码


指定编码
发送方 server.urlencode("中文", encoding.getencoding("gb2312"));
接收方 server.urldecode(request["key"], encoding.getencoding("gb2312"));


userloginif(server.urldecode(request["uid"].tostring()), request["pwd"].tostring());  


encode是编码,decode是解码.

如果还不行,
就使用post方式,或使用requestheader,或
考虑用webservice做proxy转发.

补充:asp.net教程,.Net开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,