asp.net处理Json数据时单引号与特殊字符串的处理
2014-11-04 17:55
309 查看
http://www.bkjia.com/Asp_Netjc/452711.html
在asp教程.net的json处理中,通常会遇到使用单引号或其他特殊字符,如果直接使用,会截断json数据,造成js错误无法正确运行。
其实只要使用网页特效的escape方法编码字符串后就可以解决这个问题。
但是在c#代码中怎么解决这个问题呢?
我们自然就想到了使用server.urlencode方法来编码数据,可是实践后发现编码后的有些字符在js中无法被unescape方法还原。
我就用 .net 中的 server.urlencode 函数进行转换。但是这样仍然不行。试验了很久也没有找到原因。后来怀疑 asp.net教程中的server.urlencode函数和asp中的server.urlencode函数返回的值竟然不一样。一实验。竟然确实是。
试验代码:
asp.net 中 如下代码? response.write(server.urlencode("汇编")); ?返回: %e6%b1%87%e7%bc%96
asp 中 如下代码 response.write server.urlencode("汇编")?? 返回: %bb%e3%b1%e0
产生这个问题的原因:asp.net 中的 server.urlencode 默认是按照 utf-8 编码方式进行处理的。而asp中是按照本地设置编码方式进行处理的。
如果你在 asp.net 下采用如下的编码: asp 和 asp.net 的结果就会一样:
response.write(httputility.urlencode("汇编",encoding.default));
采用:response.write(httputility.urlencode("汇编",encoding.utf8));? 返回的就是 response.write(server.urlencode("汇编"));?? 返回的结果
其实解决方法很简单,引用microsoft.jscript程序集后,使用globalobject类的escape方法就行了。
这个方法作用和server.urlencode类似,但是它相当于是在c#代码里调用了javascript的escape方法,自然而然可以保证能被unescape方法还原。
eg.
.cs中
1 microsoft.jscript.globalobject.escape(strjs);
.js中
var css教程tr = unescape(json.csstr);
在asp教程.net的json处理中,通常会遇到使用单引号或其他特殊字符,如果直接使用,会截断json数据,造成js错误无法正确运行。
其实只要使用网页特效的escape方法编码字符串后就可以解决这个问题。
但是在c#代码中怎么解决这个问题呢?
我们自然就想到了使用server.urlencode方法来编码数据,可是实践后发现编码后的有些字符在js中无法被unescape方法还原。
我就用 .net 中的 server.urlencode 函数进行转换。但是这样仍然不行。试验了很久也没有找到原因。后来怀疑 asp.net教程中的server.urlencode函数和asp中的server.urlencode函数返回的值竟然不一样。一实验。竟然确实是。
试验代码:
asp.net 中 如下代码? response.write(server.urlencode("汇编")); ?返回: %e6%b1%87%e7%bc%96
asp 中 如下代码 response.write server.urlencode("汇编")?? 返回: %bb%e3%b1%e0
产生这个问题的原因:asp.net 中的 server.urlencode 默认是按照 utf-8 编码方式进行处理的。而asp中是按照本地设置编码方式进行处理的。
如果你在 asp.net 下采用如下的编码: asp 和 asp.net 的结果就会一样:
response.write(httputility.urlencode("汇编",encoding.default));
采用:response.write(httputility.urlencode("汇编",encoding.utf8));? 返回的就是 response.write(server.urlencode("汇编"));?? 返回的结果
其实解决方法很简单,引用microsoft.jscript程序集后,使用globalobject类的escape方法就行了。
这个方法作用和server.urlencode类似,但是它相当于是在c#代码里调用了javascript的escape方法,自然而然可以保证能被unescape方法还原。
eg.
.cs中
1 microsoft.jscript.globalobject.escape(strjs);
.js中
var css教程tr = unescape(json.csstr);
相关文章推荐
- .NET种Json时对单引号和特殊字符串的处理
- C# ASP.NET替换要转化为json的数据中的特殊符号
- .NET种Json时对单引号和特殊字符串的处理
- asp.net web 字符串转json并处理
- asp.net jquery ajax处理json数据
- asp.net mvc linq to entity 查询指定列的数据以json字符串格式返回数据
- c#(asp.net)接收字符串(多条json)处理
- .NET种Json时对单引号和特殊字符串的处理
- ASP.NET MVC AJAX实现 以及如何处理json数据,简介
- 实用记录.NET处理json数据中单引号和特殊字符串
- PHP json字符串对特殊字符处理(单引号,双引号)
- Json.NET特殊处理64位长整型数据 推荐
- .NET种Json时对单引号和特殊字符串的处理
- Json.NET特殊处理64位长整型数据
- asp.net处理json数据
- asp.net服务器处理浏览器提交json格式的数据
- 【Asp.net入门3-05】处理JSON数据
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
- ASP.NET用SQL Server中的数据来生成JSON字符串
- [C#技术] .NET种Json时对单引号和特殊字符串的处理