0

私が取り組んでいるプロジェクトでは、UTF-8 でエンコードされたページにある HTML フォームを、ISO-8859-1 エンコードのみを受け入れるサーバーに投稿し、結果を iFrame に表示する必要があります。これは FF、Chrome、Safari などでは正常に動作しますが、MSIE では動作しません (9 でもありません)。IE はフォームを UTF-8 で投稿することを主張します。投稿先のサーバーにアクセスできず、投稿元のページの文字セットを変更することもできません。

フォームには定数値を持つ 2 つの要素が含まれていますが、これらの値の一部にはドイツ語のウムラウト (Ä、Ö、および Ü) が含まれています。

したがって、私が思いついた解決策は、リクエスト値をデコードし、cURL を介してすべてを投稿し、結果を返す「プロキシ スクリプト」にフォームを投稿することでした。しかし、もちろん、このサイトがホストされているサーバーは cURL をサポートしていません。

それで、これをどのように解決できるか考えている人はいますか?私は、単純に機能するソリューション (いくつかの本当に奇妙な Javascript ソリューションでさえ) を使用する時点にいます。

こんにちは、ジェイク

4

1 に答える 1

0

これに対する簡単なハックを次に示します。

サーバーが投稿 (または GET の実行) を受け入れる文字セットでのみ発生するエンティティを含む非表示の入力フィールドをフォームに挿入します。

例: フォームが ISO-8859-1 を提供するサーバー上にあり、フォームが UTF-8 を期待するサーバーに投稿される場合、フォームに次のような内容を挿入します。

<input name="iehack" type="hidden" value="&#9760;" />

IE は、フォームに UTF-8 文字が含まれていることを「検出」し、POST または GET 時に UFT-8 を使用します。奇妙ですが、うまくいきます。

于 2012-08-30T10:57:01.160 に答える