为什么我在文本框里输入两个中文参数,中间用空格隔开,用Request.QueryString方法只能得到一个参数?是字符集的问题吗?求助!

alex5006 2003-09-02 05:31:47
为什么我在文本框tb_term里输入两个中文,中间用空格隔开比如"戴 国",
string url = "<script language='javascript'>window.open('searchresult.aspx?term=" + tb_term.Text.ToString() + "');</script>";
Page.RegisterStartupScript("openwidow",url);
在打开的新页面的地址栏里是这样的:http://localhost/WebUI/searchresult.aspx?term=戴%20国,
空格已经变成了"%20"。
而且在pagehide里用Request.QueryString方法只能得到一个参数"戴"?
怎么样我才能得到完整的参数"戴 国"?是字符集的问题吗?郁闷死了,感谢高手相助!
...全文
231 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
carper 2003-09-03
  • 打赏
  • 举报
回复
你把你的代码贴出来,不可能不行的。
alex5006 2003-09-02
  • 打赏
  • 举报
回复
不行的啊,我已经试过了啊,你们有没有测试过?
cnhgj 2003-09-02
  • 打赏
  • 举报
回复
一楼正确
Server.URLEncode(tb_term.Text.ToString())
carper 2003-09-02
  • 打赏
  • 举报
回复
有空格当然不行,你去看看http头信息,再去看看如何解析出 传递的信息,也就是你用 Request.QueryString 获得信息部分。

中间一定要有个程序把这个空格进行转换。
zhenwang 2003-09-02
  • 打赏
  • 举报
回复
一般地,最好不要在url里传空格,而且对于汉字在url里大部分都是默认用 UTF-8编码传输,即像%8%889%等带%的字符,可以这样试试:
string url = "<script language='javascript'>window.open('searchresult.aspx?term=" + server.urlencode(tb_term.Text.Trim().ToString()) + "');</script>";
Page.RegisterStartupScript("openwidow",url)
在用Request.QueryString接收时一定要注意同样用server.urlencode()过滤一下。
lin_lin 2003-09-02
  • 打赏
  • 举报
回复
用Server.UrlDecode(tb_term.Text)编码
下一页取到值后用Server.UrlEncode()解码试试
树猫 2003-09-02
  • 打赏
  • 举报
回复
用空格是不行的
用其他符号,比如 ,
luckysusan 2003-09-02
  • 打赏
  • 举报
回复
改改web.config试试!

<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
dongchuanlu 2003-09-02
  • 打赏
  • 举报
回复
string url = "<script language='javascript'>window.open('searchresult.aspx?term=" + Server.URLEncode(tb_term.Text.ToString()) + "');</script>";

62,266

社区成员

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

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

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

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