2012-09-10 85 views
-3

我在DB中編碼了一些字符(", \),它們的Unicode值爲(" , \)。當我以HTML格式顯示這些字段時,它們顯示正常,但是當我將元素放入元素時,我會從DB (" , \)的實際值中獲取顯示的信息,而不是解碼值(", \)如何在輸入類型文本中顯示解碼的unicode字符值?

如何在輸入類型文本元素中顯示Unicode字符的解碼值?

+3

1)這就是「Unicode字符」,因爲它們具有Unicode代碼點,就像其他任何字符一樣。 2)爲什麼你將它們編碼爲數據庫中的HTML實體? 3)顯示你的輸出代碼或至少是最終的HTML。 – deceze

+0

我正在將這些字段提供給一個將此輸出視爲Json的jquery庫。這些字符會破壞它期望的JSON對象,所以我必須讓它們已經逃脫。我的問題是,相同的領域是期待一個JSON對象和一些輸入字段的庫。 – Romeo

+1

然後,不必要的HTML實體將它們編碼到您的數據庫中,或者在需要時再次解碼它們。 – deceze

回答

0

原來,這是一個Spring選項(屬性htmlEscape),它在輸入字段上跳過了HTML內容服務器端。

當我在輸入字段上將該屬性設置爲false時,序列&#34不再被轉義,而客戶端收到的響應中的字符改爲"

不幸的是,我沒有在JSP中指定輸入類型標記是Spring特定的,而不是HTML標記,因爲我不認爲這是問題的關鍵因素。

1

我正在將字段提供給一個jQuery庫,將該輸出視爲Json。

然後我想,填充你正在使用val()這需要文本輸入時的輸入和填充您使用html()的頁面,這需要HTML作爲輸入的其他部分時。

請勿發送包含HTML的JSON。發送包含文本的JSON。當你需要HTML時轉換爲HTML。不要將HTML存儲在數據庫中。

這些字符會破壞它期望的JSON對象,所以我必須讓它們已經被轉義。

您應該將它們編碼爲JSON,而不是HTML。除非您試圖通過將字符串混合在一起來生成JSON,否則不應該有此問題。不要這樣做,請改用JSON庫。

+0

我在說的庫是jQGrid。我們正在提供一個由JSON對象組成的.jsp文件。我們使用這種方法來輕鬆地在庫創建的表格中編寫HTML,但不幸的是,它帶有用戶插入不需要的字符的缺點。現在改變爲提供JSON對象的方法並且將響應編碼爲「appliaction/json」爲時已晚,因爲有相當多的地方需要修改。 – Romeo

相關問題