All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi中使用sql server触发器实例
PHP5中的this,self和parent关键字详解_[PHP教程]
特效:在主页中制作移动文字的几种技巧_JavaScript技术_编程技术
delphi MapViewOfFile函数将映像文件映射到进程
LINQ体验(12)——LINQ,to,SQL语句之对象标识和对象加载_[Asp.Net教程]
PHP开发中关于文件操作的疑难问答_[PHP教程]
DropdownList2种绑定方法实例代码_[Asp.Net教程]
visual c++中列表视图控件(List Control)
ASP.NET应用技巧:JS完成ListBox内容的交互实例_.net资料_编程技术
PHP技巧:PHP程序中文件上传的安全问题_[PHP教程]
Reading number is top 10 pictures
Kim jong il's mistress, national beauty JinYuJi actor2
迷人的靓女
2012 national geographic daily picture8
泳装名模阿尔贝特妮写真
有种屌丝级别的好妹子
yy365网站上的美女2
Sell the barbecue as says father du breul1
住院一星期,检测费两万
Exquisite decoration is not paying too much3
清醇靓丽的美眉
Download software ranking
jBuilder2006
White deer villiage
美女写真2
致我们终将逝去的青春
Tram sex maniac 2 (H) rar bag6
DreamWeaver8
Boxer vs Yellow2
Tram sex maniac 2 (H) rar bag4
Tram sex maniac 2 (H) rar bag1
Tram sex maniac 2 (H) rar bag8
归海一刀 published in(发表于) 2014/1/30 1:12:43 Edit(编辑)
用IHttpModule解决输入中文地址乱码问题(二)_[Asp.Net教程]

用IHttpModule解决输入中文地址乱码问题(二)_[Asp.Net教程]

用IHttpModule解决输入中文地址乱码问题(二)_[Asp.Net教程]

本文是用IHttpModule解决输入中文地址乱码问题(一) 的续文。

上文说到,需要对已有的地址进行GB2312编码,这样大大增加了工作量,有没更好的办法呢?


1 public class HookModule : IHttpModule
2 {
3
4 #region IHttpModule 成员
5
6 public void Dispose()
7 {
8
9 }
10
11 public void Init(HttpApplication context)
12 {
13 context.BeginRequest += new EventHandler(context_BeginRequest);
14 }
15
16 void context_BeginRequest(object sender, EventArgs e)
17 {
18
19 HttpApplication application = (HttpApplication)sender;
20 HttpContext context = application.Context;
21 IdentifyEncoding ie = new IdentifyEncoding();
22
23
24 string rawurl = context.Request.RawUrl;
25 rawurl = HttpUtility.UrlDecode(rawurl);
26 byte[] bytes = System.Web.HttpUtility.UrlDecodeToBytes(rawurl, Encoding.Default);
27
28 Encoding enc = Encoding.Default;
29 try
30 {
31 enc = Encoding.GetEncoding(ie.GetEncodingName(IdentifyEncoding.ToSByteArray(bytes)));
32 }
33 catch { }
34 string s = enc.GetString(bytes);
35 context.RewritePath(s);
36 }
37
38
39
40 #endregion
41 }


这里用了一个检查当前请求地址六编码的函数。这个函数实际上是从java转过来的(Create By lion),用来做蜘蛛自动侦测网站编码还不错。
由于代码较长,需要的可以从附件下载。

在这种处理中,实际上还有另外一个问题,假如,你把链接的中文编码成utf-8是会出现问题的。

一下是详细的用法:

1、网页中有 http://localhost/a.aspx?key=就是中文 这样的中文链接,无论这个网页的编码是什么类型的,都是不会出现乱码的;
2、网页中有">http://localhost/a.aspx?key=就是中文这样的中文链接,无论这个网页的编码是什么类型的,都是不会出现乱码的;
3、比如,使用地址重写中,有这个样的链接 "http://localhost/w/就是中文" ,无论你在IE中还是FF中直接地址栏输入都不会出现乱码。

附件:
1、DLL(http://www.cnblogs.com/Files/birdshover/YesHJ.Search.GBHookModule.rar)

注:附件中的DLL可以在WEB.CONFIG中使用





在根目录建立文件Rewriter.config,放入重写规则,例如




/w/(?<type>[a-z])/(?<word>[^/]*)/(?<page>\d+)/*
~/so.aspx?t=type&key=word&p=page


/w/(?<type>[a-z])/(?<word>[^/]*)/?
~/so.aspx?t=type&key=word


/w/(?<word>[^/]*)/(?<page>\d+)/?
~/so.aspx?key=word&p=page


/w/(?<word>[^/]*)/?
~/so.aspx?key=word



可以用源代码查看工具,查看DLL源码。

全文完。

来源:http://www.cnblogs.com/birdshover






添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.