发现一个很奇怪的问题,关于Request.QueryString的

tim8 2006-04-02 04:17:09
4-2.aspx

<%@ Page Language="C#"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASP.NET测试页面</title>
</head>
<body>
<a href="4-3.aspx?user_name=新加坡&age=22">显示</a>
</body>
</html>

4-3.aspx得到的user_name的值是 新加?age=22 ,只要 user_name 的值是 3个中文字,4-3.asp就得不到真实值,如果不十个中文字就OK,是怎么回事呢?

4-3.aspx

<%@ Page Language="C#"%>
<script language="c#" runat="server">
void Page_Load(object sender,EventArgs e)
{
string user_name;
int age;
user_name = Request.QueryString["user_name"];
age = Convert.ToInt32(Request.QueryString["age"]);
message.Text = "姓名:" + user_name;
message.Text += "<BR>年龄:" + age.ToString();
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASP.NET测试页面</title>
</head>
<body>
<asp:Label ID="message" runat="server"/>
</body>
</html>
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
daye2t 2006-05-22
  • 打赏
  • 举报
回复
我也碰到过,不过硬让我找出来了
<globalization requestEncoding="GB2312" responseEncoding="GB2312"/>
周力 2006-04-02
  • 打赏
  • 举报
回复
是传递编码的问题。
&Type=<%# HttpUtility.UrlEncode((DataBinder.Eval(Container.DataItem,"TypeName")).ToString(),Encoding.UTF8)%>
flashthunder 2006-04-02
  • 打赏
  • 举报
回复
因为其所默认的特定的传值方法是get方法,其默认会将对应的中文和特殊字符转换成其对应的Unicode编码。所以得到的不是楼主所想要的:)
bolly 2006-04-02
  • 打赏
  • 举报
回复
user_name = server.URLEncode(Request.QueryString["user_name"]);
popunionxy 2006-04-02
  • 打赏
  • 举报
回复
webconfig中<system.web>里面加上

<globalization
requestEncoding="GB2312"
responseEncoding="GB2312"
/>
tim8 2006-04-02
  • 打赏
  • 举报
回复
奇怪的是是
如果换成 ?user_name=新加坡1

4-3.aspx 得到的竟然是 ¼1

真是头晕啊!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧