2009-06-19 48 views
3

我在Safari(v.4)下的HTML頁面中將通過Ajax檢索到的內容渲染時出現問題。 頁面存儲在UTF-8中,Ajax響應也是UTF-8編碼的。使用AJAX檢索的UTF字符在Safari中不顯示

解析加載的內容,然後用解析的數據填充不同類型的列表。 其中之一是簡單< select>元素,其中選項的文本時使用的瑣碎代碼設置:

option.innerHTML = ""; 
option.appendChild(document.createTextNode(text)); 

我的文字包含法語字符。 作爲<選擇>元件上面的代碼的結果示出了具有2份該法語文本分割,其中,所述分離器(有些涼法語字母)中未示出在所有... :(

使用

選項
option.innerHTML = escapeGtLtAmp(text); 

具有相同的結果。

如果法國含量設爲innerHTML的一些< DIV>則該文本被示出不分開,而只是與非英文字母刪去。

U形nder Firefox 2的東西似乎工作正常。

+0

你能請張貼的鏈接出現此問題(最小)樣品頁? – Miles 2009-06-22 21:25:56

回答

0

頁面存儲在UTF-8中,Ajax響應也是UTF-8編碼。

AJAX響應是否也將Content-Type-HTTP-header設置爲UTF-8?

+0

是的,迴應Content-Type是'text/html;字符集= UTF-8' – 2009-06-19 12:30:43

0

我有一個類似的問題與Firefox 3,它似乎是問題是ajax調用。我也嘗試更改請求標題,但問題仍在繼續。所以我嘗試從iframe加載數據,從而完全避免使用ajax,然後獲取iframe的innerHTML。

如果你使用jQuery,或許this little plugin可以幫助你或者只是給你一個想法