2010-07-01 52 views
1

對於我們的Web應用程序,我們有多個包含文本區域的HTML頁面。我們所有的頁面都以ISO-8859-1字符集呈現。當通過Windows計算機上的IE6訪問頁面,並將特殊字符(如「智能報價」)複製到文本區域時,我們的某些頁面會使用Windows 1252字符編碼提交頁面。在其他頁面上,頁面似乎使用UTF-8字符編碼進行提交。我一直在跟蹤使用以下隱藏字段提交字符編碼:已提交字符編碼 - _charset_隱藏字段

<input type="hidden" name="_charset_" /> 

在Windows 1252提交的字符編碼的頁面,我們收到的「windows-1252」的值。

在UTF-8提交字符編碼頁面上,我們收到一個空白值。

在後端,我們使用ISO-8859-1。理想情況下,我們希望提交字符編碼,但是我沒有看到在IE 6上強制執行該行爲的選項。鑑於Windows 1252和UTF-8之間的選擇,我希望在Windows 1252中提交內容,以便更有可能在頁面在ISO-8859-1中重新呈現時正確呈現。

我已經深入研究了我們的頁面,並且沒有什麼會跳出來,因爲有些頁面以一種字符編碼提交。

1)當IE 6返回空白的字符集時,這是否實際上等同於UTF-8?當提交字符編碼爲UTF-8時,或僅在無法正確確定要使用的字符編碼時,IE 6是否始終返回空白字符集?

2)頁面上會有什麼不同可能會導致IE 6在某些頁面上選擇Windows 1252,而在其他頁面上則是UTF-8?我掃描了頁面中的UTF-8字符和任何接受字符集屬性,但找不到。

附加說明:我在下面的鏈接找到charset隱藏輸入的信息。

http://web.archive.org/web/20060427015200/ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html

+0

您的HTML表單中是否有「charset = ...」屬性?如果不是,請嘗試添加一個。 – 2010-07-08 05:17:17

+0

我嘗試在窗體上使用「windows-1252」和「iso-8859-1」提供「accept-charset」。這在行爲上似乎沒有任何區別。這可能是由IE(http://reference.sitepoint.com/html/form/accept-charset)對此屬性「錯誤」支持的結果。 – user381221 2010-08-02 14:47:15

回答

0

MSDN指出IE只接受 「UTF-8」 作爲該屬性的值。

+1

讓我們在這裏清楚:當它將表單提交給服務器時,客戶端瀏覽器會填充\ _charset \ _表單字段。這不是客戶指定的。 – EricLaw 2013-04-15 18:49:44