日期:2014-05-18  浏览次数:20432 次

javascript的escape传中文,aspx解码不出中文
在一个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%25u6D25

Data.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!

------解决方案--------------------
url=escape(Data.aspx?series= "+series+ "&geocodes= "+geocodes);


try
url=Data.aspx?series= "+series+ "&geocodes= "+escape(geocodes);
------解决方案--------------------
url=escape(Data.aspx?series= "+series+ "&geocodes= "+geocodes);

========

会将路径查询串的 ? = 也 escape 了
------解决方案--------------------
C# code

HttpUtility.UrlDecode(Request.QueryString[ "geocodes "],System.Text.Encoding.GetEncoding("gb2312或者其他的编码方式"))

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