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