asp.net url 中文参数传递乱码解决方法
js代码:
var pname = encodeuri(encodeuri('<%=productname %>'));
c#代码:
编码:var name = server.urlencode(request.querystring["pname"]);解码:var productname = server.urldecode(param[2]);
注:网上也有在web.config中配置:
<globalization requestencoding= "gb2312" responseencoding= "gb2312" />,
指定编码
发送方 server.urlencode("中文", encoding.getencoding("gb2312"));
接收方 server.urldecode(request["key"], encoding.getencoding("gb2312"));
笔者不推荐使用,这样解决了这里的乱码却可能会引起其他地方的乱码,而且默认编码是utf-8,应用范围比gb2312广
总结与实例
html 文件向 .asp教程x 文件进行传递中文参数的话(即不从后台用 redirect()方法进行 url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
<script language="网页特效">
function gourl()
{
var name = "中文参数";
location.href = "b.aspx?name="+escape(name) ;
}
<body onclick="gourl()">
>> 进行接收
string name = request.querystring["name"];
response.write(server.urldecode(name)) ;
总结:
一般来说。设置web.config文件就可以了。但是如果你用 javascript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。
补充:asp.net教程,.Net开发