+ -
当前位置:首页 → 问答吧 → URL解析的问题

URL解析的问题

时间:2011-12-25

来源:互联网

最近在分析iis日志,想看看来我们网站的人搜索的关键字都是什么,涉及到了将url转换为中文 函数如下->

作者: ximomomoxinei19   发布时间: 2011-12-25

我了个去。。 问题还没贴完 就发出来了 上面的无视掉吧 我把问题发在一楼 

最近在分析iis日志,想看看来我们网站的人搜索的关键字都是什么,涉及到了将url转换为中文 函数如下->
C# code

string test = System.Web.HttpUtility.UrlDecode("这里是填写url地址的地方", System.Text.Encoding.GetEncoding("GB2312"));//将Url中的编码转换为简体汉字


一般来讲 这个函数能解决百分之八十左右的转换吧,比如下面两个都能成功转换->

www.sogou.com/web?query=%C5%AE%D0%D4%CA%A7%C3%DF%B5%C4%D4%AD%D2%F2
结果
www.sogou.com/web?query=女性失眠的原因

www.sogou.com/web?query=%D4%F5%D1%F9%D4%F6%BC%D3%BC%C7%D2%E4%C1%A6
结果
www.sogou.com/web?query=怎样增加记忆力


但是还有相当一部分转换失败了,变成了火星文->
失败案例1:
http://m.baidu.com/s?from=2001a&bd_page_type=1&word=%e6%81%90%e6%83%a7%e7%97%87%e6%b5%8b%e8%af%95%e5%9b%be
转换结果 
http://m.baidu.com/s?from=2001a&bd_page_type=1&word=鎭愭儳鐥囨祴璇曞浘


失败案例2:
http://m.baidu.com/s?from=2001a&bd_page_type=1&word=%E4%BB%80%E4%B9%88%E6%98%AF%E5%BC%BA%E8%BF%AB%E7%97%87 
转换结果
http://m.baidu.com/s?from=2001a&bd_page_type=1&word=浠€涔堟槸寮鸿揩鐥?

失败案例3:
http://wenwen.soso.com/z/Search.e?sp=S%E5%A4%B1%E7%9C%A0%E7%97%87&ch=w.search.yjjlink&cid=w.search.yjjlink
转换结果
http://wenwen.soso.com/z/Search.e?sp=S澶辩湢鐥?ch=w.search.yjjlink&cid=w.search.yjjlink

事实上 上面这四个转换失败的url本身是没有问题的,可以直接复制地址在网页中打开 就可以看到正确的解析结果 案例1的正确结果是“恐惧症测试图”
案例2的正确结果是“什么是强迫症” 案例3的正确结果是 "失眠症"

作者: ximomomoxinei19   发布时间: 2011-12-25