2011-11-03 70 views
1

我有一個奇怪的問題。我是從一個div CONTENTEDITABLE讀取HTML,然後發送一個Ajax請求我的後端,以保存HTML到MongoDB的文檔,我還保存是完全相同的HTML到localStorage的。有趣的問題; localStorage和MongoDB

而且,你猜會發生什麼?當文本後裝回,在localStorage的渲染罰款,但,從數據庫中檢索到的數據變爲在整個散&的NBSP和<div> s的文字。在保存之前,MongoDB對數據做了些什麼?

+0

它編碼成[unicode的](http://en.wikipedia.org/wiki/Unicode)。 – switz

回答

2

聽起來像是從服務器HTML編碼返回的文本。無論MongoDB中的值是經過編碼還是在發送響應之前對結果進行編碼,都可以通過查看MongoDB中的實際記錄來查看。

一個簡單的方法與編碼數據的工作是:

var decodedData = $("<div />").html(encodedData).text(); 

沒有jQuery和這種方式背後的邏輯(編碼上飛):

var el = document.createElement("div"); 
el.innerHTML = encodedData; //shows text that is looks to user like the HTML 
var decodedData = el.firstChild.nodeValue; //text node value to use as HTML later 
+0

那麼,這段代碼片段是否將編碼數據轉化爲解碼數據? –

+0

是的。這應該。 – Meligy

+0

我會檢查它,並讓你知道它是否很快工作:) –

-1

這是一無所知的MongoDB,它的AJAX呼叫。

在AJAX調用的響應的串將被轉換爲字符實體,或它們將打破烏爾DOM與像「<」字符。你所需要做的就是將它們轉換回來。