新建一个采用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.   

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

  2.   

    楼上的兄弟,可以共存的。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) 都能够正确显示。大家可能认为很简单,只是大家没有碰到这种情况而已,如果大家不相信这个实现有些困难的话,就做做我楼上的这个测试吧! 我谢谢大家了!
      

  3.   

    这个问题其实就是如何把不同的编码转化成一种编码。不管客户端进来的是gb2312还是utf-8,最终转化为utf-8一种编码。如果实现了这个,这个问题就解决了。
      

  4.   

    肯定是可以共存的,
    只是他们的编码方式不一样,所以会长度不一样。
    Server.UrlEncode() Server.UrlDencode()就能正确解析了。
      

  5.   

    URIEncode是根据GB2313编码的16进制。每两位前面加一个百分号构成
      

  6.   

    楼上的兄弟,Server.UrlEncode()并不是我们能够控制的,否则就不会出现这种变化了。比如,用户手工在浏览器打上"数据库"这个参数值,就没法去Server.UrlEncode()了。
      

  7.   

    URL的编码和Unicode是没有任何联系的。
    当然你也可以在你的程序里把Unicode转成gb2312
    URL早期是escape编码,现在基本采用URIEncode编码
      

  8.   

    实际上,这位兄弟遇到问题和我是一样的:标    题: 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或其他呢。