複数の言語をサポートするページがあります(ユーザーはいつでも言語を変更できます)。
Initialize Cultureメソッドでのユーザー選択に基づいて、スレッドのカルチャを更新します。
また、選択した国のコードページに基づいて応答オブジェクトを更新し、その文字セットを使用するエンコーディングのWebNameに設定します(コードページに基づいて応答オブジェクトを更新しないと、コントロールにバインドされたデータが文字化けします)。リソースファイルもコードページに基づいてローカライズされます。
上記の変更を行った後、ページはブラウザに正しく表示されます。
ただし、ユーザーがアジアの言語の1つでデータを入力すると、テキストがすべて台無しになります。ドロップダウンリストは、実際には無効なコールバックまたはポストバック引数の例外をスローします。
request.contentEncodingを確認したところ、まだUTF-8(web.configで設定)であることがわかりました。
BeginRequestイベント中にrequest.ContentEncodingを変更すると、入力が正しく入力されます。しかし、ページサイクルの早い段階で、ユーザーが言語を選択したかどうかはわかりません。
上記のアプローチはそれを実行する正しい方法ですか?着信リクエストのエンコーディングを動的に設定するにはどうすればよいですか?