2012-10-10 32 views
2

我有一個ISO-8859-1編碼的文本文件。如果您view it in Google Chrome,它顯示正確。但是,如果你iframe it,它看起來不對。另外,它在Firefox中總是看起來不對。內嵌框架中的字符編碼

我已經注意到這種相同的行爲與各種不同的服務器和瀏覽器。但是,如果我使用Google Chrome並在同一臺計算機上運行服務器和瀏覽器,則iframe的內容將正確顯示。

我應該怎麼做才能使文件在所有情況下都能正確顯示?這似乎是瀏覽器應該能夠弄清楚,但在很多情況下它不能這樣做。

回答

3

你正在用Content-Type: text/plain提供文件,這相當於要求瀏覽器進行猜測。顯然,並非每種情況都會產生相同的猜測。

將其設置爲Content-Type: text/plain; charset=iso-8859-1

+0

有什麼簡單的方法讓我的服務器在服務文件時自動設置信息?我的意思是,我正在運行linux,而libmagic似乎知道編碼是什麼。 –

+0

從技術上講,RFC 2046中text/plain的默認字符集是US-ASCII,但是當遇到ASCII範圍以外的字節時,瀏覽器似乎會猜測它們。在HTTP標頭中指定字符集確實似乎是處理這種情況的唯一方法。 –

+0

我在我的測試環境中指定了字符集,但它仍然不能在任何瀏覽器的iframe中正確呈現。 –