我在字符串存儲在數據庫中的方式有一個非常奇怪的問題,因此,我得到這些「未終止的字符串文字」錯誤在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