新建一个采用asp.net的默认编码(utf-8)的网页(test.aspx),该网页接受一个名为tag的地址栏参数,然后把参数值显示在网页上。 这个参数采用三种不同的形式:
1.http://localhost/test.aspx?tag=数据库 (中文)
2.http://localhost/test.aspx?tag=%e6%95%b0%e6%8d%ae%e5%ba%93 (utf-8)
2.http://localhost/test.aspx?tag=%CA%FD%BE%DD%BF%E2 (gb2312) 分别复制到地址栏看一下结果,这三种形式网页显示都正常吗?如果正常,请告诉我你是如何解决的?大家可能认为这个很简单,只是大家没有碰到这种情况而已,如果大家不相信这个实现有些困难的话,就帮我做做这个测试吧! 我谢谢大家了!
1.http://localhost/test.aspx?tag=数据库 (中文)
2.http://localhost/test.aspx?tag=%e6%95%b0%e6%8d%ae%e5%ba%93 (utf-8)
2.http://localhost/test.aspx?tag=%CA%FD%BE%DD%BF%E2 (gb2312) 分别复制到地址栏看一下结果,这三种形式网页显示都正常吗?如果正常,请告诉我你是如何解决的?大家可能认为这个很简单,只是大家没有碰到这种情况而已,如果大家不相信这个实现有些困难的话,就帮我做做这个测试吧! 我谢谢大家了!
是什么就改什么.utf-8和gb2312准定不能共存的.需要什么用什么.
1. http://tag.csdn.net/tag/数据库/1.html (中文)
2. http://tag.csdn.net/tag/%e6%95%b0%e6%8d%ae%e5%ba%93/1.html (utf-8)
3. http://tag.csdn.net/tag/%CA%FD%BE%DD%BF%E2/1.html (gb2312) 都能够正确显示。大家可能认为很简单,只是大家没有碰到这种情况而已,如果大家不相信这个实现有些困难的话,就做做我楼上的这个测试吧! 我谢谢大家了!
只是他们的编码方式不一样,所以会长度不一样。
Server.UrlEncode() Server.UrlDencode()就能正确解析了。
当然你也可以在你的程序里把Unicode转成gb2312
URL早期是escape编码,现在基本采用URIEncode编码
作 者: s777n(六卖神剑)
技术类型: .NET技术 C#
关注次数: 0
发表时间: 2007-11-14 17:04:41
统计搜索引擎用于搜索的关键字。
比如url为:
http://www.baidu.com/s?wd=rg%bf%ec%cb%d9%b6%c2%c2%a9%bc%c1&pn=10&cl=3
取得wd=rg%bf%ec%cb%d9%b6%c2%c2%a9%bc%c1,百度一般为GB2312 google一般为utf-8
进行解码可以得到关键字
HttpUtility.UrlDecode(wd, System.Text.Encoding.UTF8)
或者
HttpUtility.UrlDecode(wd, System.Text.Encoding.GetEncoding( "GB2312 "))
但如何自动判断他的编码是GB2312或者UTF8或其他呢。
因为google的不一定都是UTF8,还有其他搜索引擎,比如yahoo之类,编码都不一定。
如何用C#自动判断例如“%bf%ec%cb%d9%b6%c2%c2%a9%bc%c1”的编码是GB2312或者UTF8或其他呢。