首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScriptSerializer在ASP.NET MVC上转义的Unicode字符取决于配置吗?

问使用JavaScriptSerializer在ASP.NET MVC上转义的Unicode字符取决于配置吗?
EN

Stack Overflow用户
提问于 2014-06-12 01:13:00
回答 1查看 927关注 0票数 1

序列化JSON字符串时

JavaScriptSerializer.Serialize(model)

一些Unicode字符(如U+2028(行分隔符))在一个环境中被转义,而在另一个环境上则没有转义。

问题是,在本地开发时,这个字符在序列化函数返回的JSON字符串中被转义到\u 2028,但是在另一个环境中,这个字符在破坏JavaScript时不会被转义。浏览器发现真正呈现的字符是JavaScript的行终止符,并且是非法:

Chrome控制台错误:

未登录的SyntaxError:意外令牌非法

服务器使用IIS7.5和ASP.NET MVC 4,并对完全相同的数据进行序列化。

是什么影响了这个JavaScriptSerializer处理这些字符的方式?这两个环境的.NET版本为4.0.30319。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-24 15:57:15

我怀疑在开发环境中安装了.NET FW 4的更新,而服务器上没有安装它。我不知道这个问题是用什么补丁解决的。至少4.0.30319版像贴的一样,似乎还有这个问题。

.NET 4.5.1因为您可以在参考源中签入,所以这个问题是固定的。

我们找到的解决方案是迁移到Newtonsoft JSON并使用该序列化程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24175062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档