在一个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来进行编码和解码,所以你需要在转换的时候制定具体的。