2

この Web アプリには、テキスト領域を含む複数の HTML ページがあります。すべてのページは ISO-8859-1 文字セットで表示されます。Windows マシンの IE6 を介してページにアクセスし、「スマート クォート」などの特殊文字がテキスト領域にコピーされると、一部のページは Windows 1252 文字エンコーディングを使用してページを送信します。他のページでは、ページは UTF-8 文字エンコーディングを使用して送信されているように見えます。次の非表示フィールドを使用して、送信文字エンコーディングを追跡しています。

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

Windows 1252 サブミット文字エンコーディング ページで、「windows-1252」の値を受け取ります。

UTF-8 送信文字エンコーディング ページでは、空白の値が返されます。

バックエンドでは、ISO-8859-1 を使用しています。送信文字エンコーディングが理想的ですが、IE 6 でその動作を強制するオプションはありません。ページが ISO-8859-1 で再レンダリングされるときに正しくレンダリングされるようにします。

ページを詳細に調べたところ、一部のページが 1 つの文字エンコーディングで送信される理由として、何も思い浮かびませんでした。

1) IE 6 が空白の文字セットを返す場合、それは実際に UTF-8 と同等ですか? 送信する文字エンコーディングが UTF-8 の場合、IE 6 は常に空白の文字セットを返しますか、それとも、使用する文字エンコーディングを適切に判断できない場合のみですか?

2) IE 6 が一部のページで Windows 1252 を選択し、他のページで UTF-8 を選択するページにどのような違いがある可能性がありますか? ページをスキャンして UTF-8 文字と accept-charset 属性を探しましたが、どちらも見つかりませんでした。

追記:次のリンクでcharset hidden 入力に関する情報を見つけました。

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

4

1 に答える 1

0

MSDN は、IE がこの属性の値として「utf-8」のみを受け入れると述べています。

于 2010-09-03T13:29:40.690 に答える