我在字符串存储在数据库中的方式有一个非常奇怪的问题,因此,我得到这些“未终止的字符串文字”错误在Javascript中。字符串编码问题
这里是我做的一个概述:
平台:C#/ ASP.NET MVC 1.0,SQL Server 2005中,SparkViewEngine,YUI 2
在我看来,我将对象序列化到JSON数据结构使用来自NewtonSoft的Json.NET。
<script type="text/javascript">
// <![CDATA[
var data = YAHOO.lang.JSON.parse("${Newtonsoft.Json.JsonConvert.Serialize(Model)}");
....
</script>
通常情况下,这个工作,但我注意到,我从数据库中提取的一个字段包含以下数据,这将导致该字符串不能正确形成。
数据库字段是NVARCHAR(2000)。
对于某些条目,当我从数据库复制并粘贴到记事本时,我在字符串中会出现这些奇怪的字符。
编译?分析? &?推荐?甲板
在Firebug中,它显示为一串换行符:
分析&建议甲板 “ ”开始日期“: ”10年1月19日“, ”FinishDate“:” 2010/1/26 “ ”持续时间“:6.0,”
编译分析&建议甲板
UPDATE 聊到用户后,我发现他们使用日从Word文档复制并粘贴到HTML表单上。
表单本身使用YUI连接管理器进行异步POST调用(AJAX)以保存表单值。 数据库保存了表单字段值以及与其关联的任何编码。
看起来好像Word中的字符是可打印的,但不是ASCII。有什么办法可以检测到这个并且正确编码吗?
谢谢。我认为问题在于用户复制并粘贴了不可打印的ASCII字符的字符。 – Abe 2010-01-20 22:33:21
对于这种情况,我们将Unicode字符作为Ascii,然后将得到的8位字符映射到适当的7位可打印ASCII字符。 – Dave 2010-01-22 17:27:18
更确切地说,用户将word文档中的文本复制到表单上。我不确定哪些字符被粘贴,但他们导致字符串不能正确终止;你提到的解决方案是否适用于这种情况?再次感谢! – Abe 2010-01-25 05:01:36