url:http://localhost/MayIC/login.aspx?name=%C4%E3网页程序:
value = Server.UrlDecode(Request.QueryString.Get ("name"));假如经编码的name中只有ascii字符,没任何问题,但是如果有中文字符没法解码,value为空,
Server.UrlDecode去掉也一样,不知怎么解决?

解决方案 »

  1.   

    期待高人的回答,虽然我作的几个东西没出现过你这样的问题,但是我是尽可能的用id而不是用name
      

  2.   

    要指定编码,你可以试试:
    value = HttpUtility.UrlDecode(Request.QueryString.Get ("name"), Encoding.GetEncoding("GB2312"));
      

  3.   

    汗死,没看清楚。Request.QueryString.Get ("name")已经是解码后的结果了。关于页面接受不同编码的URL,可以参考这个:    Encoding encoding = Encoding.UTF8;    if ( request.QueryString["enc"] != null )
          encoding = Encoding.GetEncoding( request.QueryString["enc"] );    NameValueCollection parameters = HttpUtility.ParseQueryString( request.Url.Query, encoding );
      

  4.   

    对于url中的参数,比如name=%C4%E3
    QueryString集合里已经是解码后的值
    但既然是解码,就必须要用正确的字符集去接
    如果你没改默认设置,那系统会用utf8去解.但显然%C4%E3是GB2312编码的
    所以Request.QueryString.Get ("name")得不到值解决办法:
    1.还是用默认的utf8,参数用utft进行url编码,"你"的utf8 url编码是%e4%bd%a0
    2.修改web.config,globalization 节,将requestEncoding responseEncoding由utf8改为gb2312
    这样,系统在解码时会用GB2312去解
      

  5.   

    value = Server.UrlDecode(Request.QueryString["name"]);
    试试