如果在百度搜索“社区中心”。浏览器地址栏关键字是这样的wd=%C9%E7%C7%F8%D6%D0%D0%C4如果是asp做。
<%=Chr(&hc9e7)%><br>
<%=Chr(&hc7f8)%><br>
<%=Chr(&hd6d0)%><br>
<%=Chr(&hd0c4)%><br>直接这样就得到这个四个字。(wd=后有8个%,两个两个组合,前面加&h,就可以得到。)看上去像16进制数字,但是也不行。
另外在asp里面<%=Eval(&hc9e7)%>会得到-13849,-13849就是‘社’的ascii码。<%=Chr(-13849)%><br>
<%=Chr(-14344)%><br>
<%=Chr(-10544)%><br>
<%=Chr(-12092)%><br>   其实这样也是这个四个字“社区中心”。
如果直接是-13849可以取到汉字,但是怎么到过wd=%C9%E7%C7%F8%D6%D0%D0%C4这些字符渠道汉字呢,
asp里面直接Eval函数就可以,但csharp里好像没有。请高手帮忙看看。

解决方案 »

  1.   

    其实.NET做这个更简单
     string[] _ValueText = "%C9%E7%C7%F8%D6%D0%D0%C4".Split(new char[] { '%' }, StringSplitOptions.RemoveEmptyEntries);            MemoryStream _Memory =new MemoryStream();
                for (int i = 0; i != _ValueText.Length; i++)
                {
                    _Memory.WriteByte( Convert.ToByte(_ValueText[i], 16));
                }
                byte[] _ValueBytes = _Memory.ToArray();
                string _Value = System.Text.Encoding.GetEncoding("GB2312").GetString(_ValueBytes);直接转换byte[] 就可以了. 
      

  2.   

    string str=HttpUtility.UrlDecode("%C9%E7%C7%F8%D6%D0%D0%C4", Encoding.GetEncoding("gb2312"));Console.WriteLine(str);   //str="社区中心"
    //添加一个System.Web 的引用
      

  3.   

    string wd = "%C9%E7%C7%F8%D6%D0%D0%C4";
    string cn = Server.UrlDecode(wd);