Asp.Net和名字是3个字的人有仇?

来源:互联网 发布:oracle数据库视频教程 编辑:程序博客网 时间:2024/05/08 20:43

最近在做一个教务系统,在一处需要通过URL传递教师名称,测试中发现一个奇怪的问题,教师名字如果是2个字则没问题,如果是3个字当用Request("TeacherName")获取时会少一个字,难道说.Net和名字是3个字的人有仇?郁闷了(我自己也是3个字的名字)……

郁闷了5秒钟以后想到了UrlEncode这位大仙,于是Server.UrlEncode(TeacherName),MMD,问题依旧,再次郁闷……

于是发挥"Why"时代人的风范——问同事,同事也觉得奇怪,不过提供了一个有价值的线索,UrlEncode这位大仙有2个家,还有一个是HttpUtility,查了MSDN发现果然是这样,UrlEncode分别是两个对象的成员:HttpServerUtilityHttpUtility,而HttpServerUtility 类的方法和属性通过 ASP.NET 的内部Server对象公开。

抱着对.Net的最后一点信任,我试了一下HttpUtility.UrlEncode,Faint,真的OK了。

问题是解决了,留下2个疑点:

  1. 2个字和3个字到底有什么区别
  2. HttpServerUtilityHttpUtility在调用机制上有什么区别(MSDN上只是说HttpServerUtility是提供用于处理 Web 请求的 Helper 方法,而HttpUtility提供用于在处理 Web 请求时编码和解码 URL 的方法。本人实在是不甚理解)

这两个问题先记下,留待有空研究,也希望高手不吝赐教!