今日、私は非常に魔法の問題に遭遇しました。ユーザーは、このWebサイトのフォームは、クエリシステムに提出された後、返品値を取得できないと私に言った。クエリの結果は0レコードですが、値はローカルの純粋なHTML実行で検索できます。私はそれを自分で確認しましたが、これは真実であることがわかりました。さらに、フィールドの異なる値を除いて、両側に送信されたパラメーターを比較すると、パラメーターの数は同じであるため、エンコード問題の影響であると考えるかもしれません。
2つのファイルを個別に開いた後、両側のエンコーディングが実際に一貫性がなく、サーバーはGB2312であることがわかりました。 UTF-8エンコーディングを通過するパラメーターは、過去に正常に解析できなかったため、犬に捜索して、フォームでめったに使用されないプロパティを見つけました。
コードコピーは次のとおりです。
Accept-charset =” gb2312″
このプロパティはとても興味深いです。フォームを設定してコンテンツをエンコードできるため、このプロパティをフォームに追加するだけです。
しかし、それはとても嫌です。 IEはこのプロパティをサポートしていないため、フォームのonsubmit()メソッドをハックして追加する必要がありました
コードコピーは次のとおりです。
onsubmit =” document.charset = 'gb2312'; "
問題は完全に解決されます。