ASHX返回的JSON数据里有中文无法正常使用。

问题描述

通过ashx读取数据库返回json数组绑定select.返回的json内容里有中文值、无法使用、改为只返回值是英文的属性就可以使用勒,怎么解决勒?tips:1、ashx,js,html都已另存为utf-8类型勒;2、ashx和js代码(一部分):StringBuildersb=newStringBuilder("[");stringtpl=""id":{0},"text":{1}";foreach(DataRowdrinds.Tables[0].Rows){sb.Append("{"+string.Format(tpl,dr["provinceid"],dr["provincename"])+"},");}context.Response.ContentEncoding=Encoding.UTF8;context.Response.Write(sb.ToString().Substring(0,sb.ToString().Length-1)+"]");

$(function(){$.getJSON("ajax/getaddress.ashx?type=p",function(data){$.each(data,function(i,v){$("#selProvince").append("<optionvalue='"+v.id+"'>"+v.text+"</option>");});});});

直接运行ashx,页面输出json数组正常:[{"id":1,"text":北京},{"id":2,"text":天津},{"id":3,"text":河北},{"id":4,"text":山西},{"id":5,"text":内蒙古自治区},{"id":6,"text":辽宁},{"id":7,"text":吉林},{"id":8,"text":黑龙江},{"id":9,"text":上海},{"id":10,"text":江苏},{"id":11,"text":浙江},{"id":12,"text":安徽},{"id":13,"text":福建},{"id":14,"text":江西},{"id":15,"text":山东},{"id":16,"text":河南},{"id":17,"text":湖北},{"id":18,"text":湖南},{"id":19,"text":广东},{"id":20,"text":广西壮族自治区},{"id":21,"text":海南},{"id":22,"text":重庆},{"id":23,"text":四川},{"id":24,"text":贵州},{"id":25,"text":云南},{"id":26,"text":西藏自治区},{"id":27,"text":陕西},{"id":28,"text":甘肃},{"id":29,"text":青海},{"id":30,"text":宁夏回族自治区},{"id":31,"text":新疆维吾尔自治区},{"id":32,"text":香港特别行政区},{"id":33,"text":澳门特别行政区},{"id":34,"text":台湾}]

解决方案

解决方案二:
。。。CSDN现在好冷清。
解决方案三:

解决方案四:
参考:
解决方案五:
c#先编码下HttpUtility.UrlEncode();js解码encodeURI()
解决方案六:
引用2楼sandy945的回复:

http://mysun.iteye.com/blog/382053

我ashx里中文值的部分加了编码、然后js这边解码还是不行勒StringBuildersb=newStringBuilder("[");stringtpl=""pid":{0},"pname":{1}";foreach(DataRowdrinds.Tables[0].Rows){sb.Append("{"+string.Format(tpl,dr["provinceid"],HttpUtility.UrlEncode(dr["provincename"].ToString()))+"},");}context.Response.Write(sb.ToString().Substring(0,sb.ToString().Length-1)+"]");

$.getJSON("ajax/getaddress.ashx?type=p",function(data){$.each(data,function(i,v){$("#selProvince").append("<optionvalue='"+v.pid+"'>"+decodeURI(v.pname)+"</option>");});});

ashx输出正常:[{"pid":1,"pname":%e5%8c%97%e4%ba%ac},{"pid":2,"pname":%e5%a4%a9%e6%b4%a5},{"pid":3,"pname":%e6%b2%b3%e5%8c%97},{"pid":4,"pname":%e5%b1%b1%e8%a5%bf},{"pid":5,"pname":%e5%86%85%e8%92%99%e5%8f%a4%e8%87%aa%e6%b2%bb%e5%8c%ba},{"pid":6,"pname":%e8%be%bd%e5%ae%81},{"pid":7,"pname":%e5%90%89%e6%9e%97},{"pid":8,"pname":%e9%bb%91%e9%be%99%e6%b1%9f},{"pid":9,"pname":%e4%b8%8a%e6%b5%b7},{"pid":10,"pname":%e6%b1%9f%e8%8b%8f},{"pid":11,"pname":%e6%b5%99%e6%b1%9f},{"pid":12,"pname":%e5%ae%89%e5%be%bd},{"pid":13,"pname":%e7%a6%8f%e5%bb%ba},{"pid":14,"pname":%e6%b1%9f%e8%a5%bf},{"pid":15,"pname":%e5%b1%b1%e4%b8%9c},{"pid":16,"pname":%e6%b2%b3%e5%8d%97},{"pid":17,"pname":%e6%b9%96%e5%8c%97},{"pid":18,"pname":%e6%b9%96%e5%8d%97},{"pid":19,"pname":%e5%b9%bf%e4%b8%9c},{"pid":20,"pname":%e5%b9%bf%e8%a5%bf%e5%a3%ae%e6%97%8f%e8%87%aa%e6%b2%bb%e5%8c%ba},{"pid":21,"pname":%e6%b5%b7%e5%8d%97},{"pid":22,"pname":%e9%87%8d%e5%ba%86},{"pid":23,"pname":%e5%9b%9b%e5%b7%9d},{"pid":24,"pname":%e8%b4%b5%e5%b7%9e},{"pid":25,"pname":%e4%ba%91%e5%8d%97},{"pid":26,"pname":%e8%a5%bf%e8%97%8f%e8%87%aa%e6%b2%bb%e5%8c%ba},{"pid":27,"pname":%e9%99%95%e8%a5%bf},{"pid":28,"pname":%e7%94%98%e8%82%83},{"pid":29,"pname":%e9%9d%92%e6%b5%b7},{"pid":30,"pname":%e5%ae%81%e5%a4%8f%e5%9b%9e%e6%97%8f%e8%87%aa%e6%b2%bb%e5%8c%ba},{"pid":31,"pname":%e6%96%b0%e7%96%86%e7%bb%b4%e5%90%be%e5%b0%94%e8%87%aa%e6%b2%bb%e5%8c%ba},{"pid":32,"pname":%e9%a6%99%e6%b8%af%e7%89%b9%e5%88%ab%e8%a1%8c%e6%94%bf%e5%8c%ba},{"pid":33,"pname":%e6%be%b3%e9%97%a8%e7%89%b9%e5%88%ab%e8%a1%8c%e6%94%bf%e5%8c%ba},{"pid":34,"pname":%e5%8f%b0%e6%b9%be}]

解决方案七:
引用4楼zhouyongli41的回复:

c#先编码下HttpUtility.UrlEncode();js解码encodeURI()

解码是decodeURI吧,我试了,还是不行,难道人品问题?
解决方案八:
LZ,你这杯具啊……字符串啊,引号都不加。{"id":1,"text":"北京"}
解决方案九:
。。。确实

时间: 2024-10-03 15:22:42

ASHX返回的JSON数据里有中文无法正常使用。的相关文章

jquery easuyu datagird读取不到ashx返回的json数据

问题描述 1.前台代码deptlistpx.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>部门排序&

jquery序列化form表单使用ajax提交后处理返回的json数据

 这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下 1.返回json字符串:    代码如下: /** 将一个字符串输出到浏览器 */     protected void writeJson(String json) {         PrintWriter pw = null;         try {             servletResponse.setContentType("text/plain;cha

ajax接受后台返回的json数据不全

问题描述 ajax接受后台返回的json数据不全 后面没东西了 导致ajax直接进入error方法了知道的大神帮忙支支招 , 万分感谢 解决方案 网络不稳定导致数据没有传输完吧...你浏览器直接访问地址能获取到完整的数据没? 解决方案二: 你先检查后台组织json的地方是否组织了正确的数据 解决方案三: 如果是你在后台自己封装的json对象,需要考虑容错,不要因为某一项异常或导致了返回的对象不是一个完整的Json对象.最好是先取值,最后统一封装,而不是动态拼接这种形式,极易出错. 解决方案四:

javascrpit-js怎样将返回的json数据读取到s:select中

问题描述 js怎样将返回的json数据读取到s:select中 json数据 [{""inherit"":6majorID"":7majorName"":""交通工程系""}{""inherit"":6majorID"":9majorName"":""交通运输工程研究所"&quo

springmvc 返回的json数据问题

问题描述 springmvc 返回的json数据问题 springmvc 返回的json数据是整个页面代码,如图: 解决方案 问题已解决是加了 sitemesh的原因,因为在请求这个url的时候sitemesh进行拦截了,解决的办法也很简单:只要把这个url在sitemesh拦截的时候去掉就可以了 解决方案二: 怎么这里没有人回答啊 解决方案三: 打个断点或者输出下日志,看一下是否进入这个controller的方法了 解决方案四: 你要返回json不能这么干,首先你返回json的action 应

上传文件返回的json数据会被提示下载问题解决方案_javascript技巧

最近项目中出现上传文件返回的json数据会被提示下载,只有在ie10+中才会出现这个问题.前端使用jQuery的插件ajaxForm提交表单,后台返回的数据格式为json.代码如下:  后端Python: 复制代码 代码如下: def jsonp(func):     """Wraps JSONified output for JSONP requests."""     @wraps(func)     def decorated_functi

jqGrid获取到python返回的Json数据,未能显示到页面上,为毛???

问题描述 jqGrid获取到python返回的Json数据,未能显示到页面上,为毛???  写道 解决方案 上面的链接搞乱了,看这个:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data&s[]=json#json_data解决方案二:你的后台返回的相应数据格式不对啊,jqgrid有要求的:看=json#json_data]官方文档这里

显示-求教将后台返回的JSON数据填充到表格的问题,js的循环怎么写才正确。

问题描述 求教将后台返回的JSON数据填充到表格的问题,js的循环怎么写才正确. 后台返回的是这样的 {"reportId":"1","className":"java","reportName":"232","teaName":"刘老师","stuName":"张同学","uploadDate&q

淘宝API返回的json数据无法用json_decode的问题

如题,这个问题困扰我已久...经过自己的多次尝试,和到网上搜索,我已大概猜测到是字符的问题,论坛上的朋友说,PHP的json_decode对json数据要求非常严格,必须是{"key":"value"}的双引号包围才行,而且,对一些特殊符号不兼容...例如UTF-8的 BOM头,或者是C++字符的结束符等等... 经过排查,我发现...淘宝API返回的json数据(特别是taobao.taobaoke.items.detail.get),之所以json_decode