在一个aspx页面里用javascript的escape通过url传带中文的地址,如:
url=escape(Data.aspx?series="+series+"&geocodes="+geocodes);
其中series是0或1,而geocodes格式类似:“110000,北京;120000,天津”
当以上url构造好之后,用alert(url):Data.aspx%3Fseries%3D1%26geocodes%3D110000%252C%25u5137%25u4EAC%253B120000%252C%25u5929%25u6D25Data.aspx的页面内容只有<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataURL.aspx.cs" Inherits="FusionChart_DataURL" %>没有html等标签,
这个Data.aspx.cs的最后是输出xml( Response.ContentType = "text/xml";
        Response.Charset = "gb2312";)
但是在Data.aspx.cs里的pageload用Server.UrlDecode (Request.QueryString["geocodes"])却得到"110000,53174EAC;120000,59296D25"
在webconfig里也添加了<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>不知道怎么解析成“北京、天津”,着急ing!

解决方案 »

  1.   

    url=escape(Data.aspx?series="+series+"&geocodes="+geocodes);
    try
     url=Data.aspx?series="+series+"&geocodes="+escape(geocodes);
      

  2.   

    url=escape(Data.aspx?series="+series+"&geocodes="+geocodes);========会将路径查询串的 ? = 也 escape 了
      

  3.   

    这里的“escape(Data.aspx?series="+series+"&geocodes="+geocodes); ”
    是必须要这样写的,因为一段脚本这么接收字符串,必须先escape,问题是 "110000%252C%25u5137%25u4EAC%253B120000%252C%25u5929%25u6D25" 到了Data.aspx的pageload里只通过Request.QuryString["geocodes"]就变成了 "110000,53174EAC;120000,59296D25"这样呢?还没搞定呢,饭都没吃,汗!
      

  4.   

    试下下面的url=Data.aspx?series= "+escape(series)+ "&geocodes= "+escape(geocodes); 整个URL escape是不行的
      

  5.   


    用与escape()对应的unescape()操作
      

  6.   


    HttpUtility.UrlDecode(Request.QueryString[ "geocodes "],System.Text.Encoding.GetEncoding("gb2312或者其他的编码方式"))
    在执行UrlDecode的时候就制定编码,编码视你的实际情况而定。你可以试试gb2312或者utf-8
      

  7.   

    默认UrlDecode的话会采用utf-8来进行编码和解码,所以你需要在转换的时候制定具体的。