日期:2014-05-18  浏览次数:20427 次

Request.QueryString截断的问题
<code="C#">
 <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("classname") %>' 
  NavigateUrl='<%# Eval("classid","~/TeacherManage/ShowTeacherUpfile.aspx?classid={0}&classname="+Eval("classname"))%>'></asp:HyperLink>
</code>
接收页面
string Classname=Request.QueryString["classname"].ToString();
当我传值的页面传了一个Classname="信计一班"的时候,接收页面接收到的是“信计一口”,后来查了一下才知道是因为Url地址太长被截断了,所以翻译错误了。
我不知道是URL长度的限制还是Request.QueryString截断的?
请大家帮帮忙,怎么解决,谢谢。

------解决方案--------------------
中文需要 Server.UrlEncode Server.UrlDecode 的吧
------解决方案--------------------
用escape转码
------解决方案--------------------
编码可以考虑看一下,你也可不妨试下post.
------解决方案--------------------
试试将页面的编码换为gb2312
------解决方案--------------------
看见很多朋友讨论浏览器最大URL长度限制的问题。其实实际中URL长度限制是由2方面决定的。1 客户浏览器 2 接受服务请求的服务器端的设置。对于大多数用户来说,他们使用的浏览器是IE浏览器,IE的最大URL长度限制是2083字节,而实际可以使用的最大长度 为2048字节。 
 
以下是微软方面的技术资料及翻译:
 
Maximum URL length is 2,083 characters in Internet Explorer
在IE中URL最大长度是2083字节
 
SUMMARY
摘要
Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. 
微软 Internet Explorer 限制最大统 一资源定位器 (URL) 长度为2083字节。
 
Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST 
request and GET request URLs. 
Internet Explorer 对最大请求路径长度也进行了限制,限制长度为2048字节。这个限制对 POST 请求和 GET 请求的URL。均适用。

If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.
如果您使用GET方法,您将受到最大2048字节的长度限制,减去实际路径中的字符数。
(注:实际可以使用的字符串长度=2048-请求页面路径字符长度)
 
However, the POST method is not limited by the size of the URL for submitting name/value pairs. These pairs are transferred in the header and not in the URL. 
但是, POST 方法提交名称 / 值对不受 URL 长度的大小的限制。 因为这些名 / 值对是在请求中的header部分传输的,而不在URL中。

RFC 2616, "Hypertext Transfer Protocol -- HTTP/1.1," does not specify any requirement for URL length. 
RFC 2616、 " 超文本传输协议 -- HTTP /1.1, " 未指定任何对 URL 长度要求。
 
由此文大家可以知道,实际在IE中可以使用的最大URL长度是2048字节减去您请求页面的路径长度。另外这个长度还受到服务端相应软件的限制。

------解决方案--------------------
后来我用的session 没有办法了