2011-09-20 44 views
2

在我的一個asp.net應用程序中,我發現Internet Explorer 9中產生了一個奇怪的行爲,而IE8運行良好。IE9編碼問題

作爲默認編碼我需要utf-8。這很重要,因爲我使用德語,如「ÄäÖüÜü」,叫做Umlaute。

當頁面首次加載時,IE9決定使用「西歐」編碼。據我所知,這就是ISO 8859-1,而且Umlaute變成了奇怪的字母。 第二次加載IE9正確使用utf-8。 在源代碼中我嘗試了下面的事情告訴IE它編碼的使用方法:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 TRANSITIONAL//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="de"> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"> 

爲什麼IE9工作太奇怪了第一負載? 還有什麼我可以嘗試告訴IE9如何工作

+0

服務器返回所有其他頁面的正確使用並且錯誤可以在2服務器。 –

+0

包含你提到的是不是一樣? –

+0

我明白了,1點和2點好!我們來檢查第三個原因。在WinHex或類似的東西中打開你的主頁面,並以十六進制格式發佈前10個字節或者點擊它。 –

回答

1

Firstable - 您的網站託管服務器可以返回錯誤的編碼信息在標題;

兩個 - 也許這是一些在你的頁面的標題(在該字符串錯誤的符號)tolk有關編碼失敗。

三 - 十六進制brouser打開您頁(WinHex中爲例)和後置代號第一排(有時編輯發生在第一個字節錯誤的數據,我就可以一直蹣跚一次)

如果這個部位佈置在線,發佈它的網址,我試圖找到一個問題。你的服務器的

+0

該頁面僅限於Intranet。我發佈了http響應,它似乎很好。 –

0

檢查響應頭就必須包含這樣的事情:

核心價值

內容類型text/html;字符集= UTF-8

響應HTTP/1.1 200 OK

如果它不是然後檢查你的服務器設置或您的代碼必須有地方Content-type頭改變

編輯:確定,編碼是正如你在評論中提出的建議你檢查你的第一個字節的響應,它似乎是以額外的字節開始的(通常是關於編碼的信息)

+0

HTTP/1.1 200 OK Content-Length:123702 Content-Type:text/html; charset = utf-8 服務器:Microsoft-IIS/7.0 X-AspNet-Version:2.0.50727 X-Powered-by-ASP.NET –