今天在做一个无刷新判断公司名称,是否重复的时候,发现一个问题就是通过javascript传到asp.net页面的值是乱码。以前没有发现。因为以前做测试时,都是用英文字符进行的测试。今天输入汉字后,发现有这种问题。感觉可能是编码的问题。就上网查了一下。找到一些方法,如下:
1.设置web.config文件
进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
3.javascript对asp.net页面传值。
在asp.net页面中正常使用Request.QueryString("Name").toString()就可以得到正确的中文了
1.设置web.config文件
<system.web>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
</system.web>
2.asp.net对asp.net页面传值<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
</system.web>
进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
3.javascript对asp.net页面传值。
<script language="javascript">
function escode()
{
location.href ="B.aspx?Name="+escape(Name);
}
</script>
function escode()
{
location.href ="B.aspx?Name="+escape(Name);
}
</script>
在asp.net页面中正常使用Request.QueryString("Name").toString()就可以得到正确的中文了