请求大家帮忙做个测试,谢谢了!

qingyun163 2008-01-07 12:51:46
新建一个采用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)

分别复制到地址栏看一下结果,这三种形式网页显示都正常吗?如果正常,请告诉我你是如何解决的?

大家可能认为这个很简单,只是大家没有碰到这种情况而已,如果大家不相信这个实现有些困难的话,就帮我做做这个测试吧!

我谢谢大家了!
...全文
135 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingyun163 2008-01-07
  • 打赏
  • 举报
回复
实际上,这位兄弟遇到问题和我是一样的:

标 题: c# 判断 搜索引擎url后查询关键字的编码。关键字:GB2312,UTF-8
作 者: 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或其他呢。
qingyun163 2008-01-07
  • 打赏
  • 举报
回复
现在不是采用不采用的问题了,而是遇到这个问题无法解决!
qq22345111 2008-01-07
  • 打赏
  • 举报
回复
顶 楼上
wdzr_826 2008-01-07
  • 打赏
  • 举报
回复
URL的编码和Unicode是没有任何联系的。
当然你也可以在你的程序里把Unicode转成gb2312
URL早期是escape编码,现在基本采用URIEncode编码
hli33 2008-01-07
  • 打赏
  • 举报
回复
同意楼上
qingyun163 2008-01-07
  • 打赏
  • 举报
回复
楼上的兄弟,Server.UrlEncode()并不是我们能够控制的,否则就不会出现这种变化了。比如,用户手工在浏览器打上"数据库"这个参数值,就没法去Server.UrlEncode()了。
wdzr_826 2008-01-07
  • 打赏
  • 举报
回复
URIEncode是根据GB2313编码的16进制。每两位前面加一个百分号构成
大正他爹 2008-01-07
  • 打赏
  • 举报
回复
肯定是可以共存的,
只是他们的编码方式不一样,所以会长度不一样。
Server.UrlEncode() Server.UrlDencode()就能正确解析了。
qingyun163 2008-01-07
  • 打赏
  • 举报
回复
这个问题其实就是如何把不同的编码转化成一种编码。不管客户端进来的是gb2312还是utf-8,最终转化为utf-8一种编码。如果实现了这个,这个问题就解决了。
qingyun163 2008-01-07
  • 打赏
  • 举报
回复
谢谢楼上帮顶!
treesky 2008-01-07
  • 打赏
  • 举报
回复
顶楼上!
qingyun163 2008-01-07
  • 打赏
  • 举报
回复
楼上的兄弟,可以共存的。

csdn的tag系统,对于这个问题它就解决了。像这三种形式:
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)

都能够正确显示。大家可能认为很简单,只是大家没有碰到这种情况而已,如果大家不相信这个实现有些困难的话,就做做我楼上的这个测试吧!

我谢谢大家了!
pcgenius 2008-01-07
  • 打赏
  • 举报
回复
你在WEB.config加一句.

<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
是什么就改什么.utf-8和gb2312准定不能共存的.需要什么用什么.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧