0
  1. 非 UTF-8 エンコーディングのページがあります。
  2. との形がありmethod="get"ます。これらの非 UTF-8 文字を送信すると、URI に到達します。
  3. decodeURIComponent()URI で実行しようとすると、悪名高いエラー:が表示されますURIError: malformed URI sequence

テストケースに従ってください。

質問:

  1. 上記の手順 (1、2、3) のどれに問題がありますか? 1 は問題ないはずです。2 は標準的な送信方法<form>です。そして 3 は標準機能です。これらすべてが標準です!それでも、どこかにエラーがあるはずです。

  2. UTF-8 以外のエンコーディングの文字は URI で許可されていますか? (そうでない場合、問題は明らかにステップ 2 にあります)。

  3. 問題が正しく診断された後、問題は次のとおりです。それに対する明確な解決策は何でしょうか? ページは非 UTF-8 エンコーディングのままである必要があります。

4

1 に答える 1

2

Firefox は次のように述べています。

[11:38:39.275] すべての Unicode 文字をエンコードできない ISO-8859-2 エンコードでフォームが送信されたため、ユーザー入力が破損する可能性があります。この問題を回避するには、ページ自体のエンコーディングを UTF-8 に変更するか、フォーム要素で accept-charset=utf-8 を指定して、フォームが UTF-8 エンコーディングで送信されるようにページを変更する必要があります。@ http://artax.karlin.mff.cuni.cz/~ttel5535/pub/bugs/form_get_submit_non_utf-8/non_utf8_uri_test.html?input=%B9

于 2013-10-31T10:39:44.603 に答える