2012-05-11 30 views
4

我看到這個問題。在Chrome/Safari中,被設置爲包含一些特殊字符(即,西班牙語波浪號'i')的內容的Ajax響應未被正確解釋。UTF-8編碼在Chrome Ajax響應中出現錯誤

這個問題是完全歸納在這裏一個例子:

我嘗試Firefox和IE瀏覽器和兩個正常工作。只有Chrome不是 正確顯示網頁。這是網址:http://maixner.eu/#bio 正如你所看到的,一些字符是錯誤的。這條線:2012 - Muzeum站 modernÃhoUMA>娜,奧洛穆茨,捷克共和國應該是:2012 - Muzeum站 moderníhoumění,奧洛穆茨,捷克共和國

開發細節:1)目前的index.html與JavaScript文件頁面,該頁面 通過AJAX加載數據(調用PHP文件)2)index.html文件有 內容類型設置爲UTF-8 3)所有文件都是UTF-8編碼4)javascript 注入innerHTML使用XMLHttpRequest類與responseText 5)php 文件具有標題('Content-type:text/html; charset = UTF-8'');

And here:

有類似(或相同)的問題,但帶有西班牙字符。我已經設置Apache使用UTF-8 我已經設置了php頭('Content-Type:text/html; charset = utf-8');我已經設置了Apache使用UTF-8 。 我已經設置HTML 我已經設置HTML 但Chorme(僅限Chrome,FF,IE等工作確定)表明這一點:

[發佈標題] ... 接收字符集:ISO-8859-1 ,UTF-8,q = 0.7,*; q = 0.3 ... [從表單的一些隨機值後] ------ WebKitFormBoundary0wi0NAscQiUkF2hJ 內容處置:形狀數據; name =「s_name」 Oxógeno100.4 FMBogotá< - 字符錯誤!應改爲:Oxígeno100.4 FM波哥大

Original Post

回答

3

我有同樣的問題

基本上,在我的情況下,這是因爲瀏覽器發送的請求標頭

chrome發送:內容類型:application/x-www-form-urlencoded,只有
firefox發送:Content-Type:application/x-www-form-urlencoded; charset = UTF-8

如果沒有charset = UTF-8,服務器將默認爲ISO,並對其進行錯誤解碼。

+0

是的,最終成爲真正的問題。必須強制用於webkit瀏覽器的「charset = UTF-8」。 – mtyson

+6

你在哪裏/如何做'charset = UTF-8'強制? – MattH

0

在你的字符串結束前有一個額外的「PHP的頭功能,它應該是

<?php 
header('Content-type: text/html; charset=utf-8'); 
+0

謝謝,但那不是。我有一個正確設置了標題的Java應用程序,它看到了同樣的問題。 – mtyson

+0

@mtyson這是示例頁面中的問題(http://maixner.eu/#bio)您能否顯示其他頁面?或者你可以設置一個簡單的示例頁面? – user570783