ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

21.2 送信データの文字エンコーディングについて

ブラウザから送信されるデータにどの文字エンコーディングが使用されているかを Webcoordinatorに明示的に指定できます。何も指定しなかった場合、 JavaのエンコーディングJISAutoDetectを使用して文字エンコーディングが自動判定されます。 JISAutoDetectについては、“Java 2 SDK, Standard Edition ドキュメント”の「国際化」を参照してください。

送信データのエンコーディングの指定には以下の3通りの方法があります。

各フォームごとに文字エンコーディングを指定

フォームにuji.encodingリクエストパラメタを追加して、文字エンコーディングを 指定できます。詳細は、“UJIタグリファレンス”のuji.encodingリクエストパラメタを参照してください。

全フォームに一括してエンコーディングを指定(API使用)

ApplicationProfileクラスのgetRequestEncodingメソッドをオーバーライドすることにより、全フォームの文字エンコーディングを 一括して指定できます。詳細は“APIリファレンス”を参照してください。

全フォームに一括してエンコーディングを指定(Webアプリケーション環境定義ファイル使用)

Webアプリケーション環境定義ファイル(web.xml)に記述する初期化パラメタuji.defaultEncodingで全フォームの文字エンコーディングを一括して指定できます。Webアプリケーション環境定義ファイルについては、“Webアプリケーション環境定義ファイル(web.xml)”を参照してください。

複数の方法で文字エンコーディングを指定した場合、以下の優先順位で有効になります。

  1. uji.encodingリクエストパラメタでの指定

  2. ApplicationProfileクラスのgetRequestEncodingメソッドでの指定

  3. Webアプリケーション環境定義ファイルに記述したuji.defaultEncodingパラメタの指定

サーブレットコンテナで文字エンコーディングの変換を行う場合は、getRequestEncodingメソッドまたは初期化パラメタuji.defaultEncodingで文字エンコーディングとしてnoneを指定してください。この指定により、Webcoordinatorでは文字エンコーディングの変換をしなくなります。

注意

Interstageを使用しており、以下のすべての条件に該当する場合は文字エンコーディングの変換が正しく行われません。

  • Interstage管理コンソールのワークユニットの環境設定で、Servletコンテナ設定の「リクエストURIのエンコーディング」をデフォルト以外の設定にしている場合。

  • uji.encodingリクエストパラメタ、getRequestEncodingメソッド、初期化パラメタuji.defaultEncodingでnone以外の文字エンコーディングを指定している場合、または、いずれも指定を省略している場合。

  • GETメソッドで送信するフォームがある場合。(FORMタグまたはuji:formタグでmethod="get"を指定したもの、または、methodアトリビュートを省略したものがある場合。)

この場合は、Interstage管理コンソールのワークユニットの環境設定で、Servletコンテナ設定の「リクエストボディ処理のエンコーディングをクエリパラメタに使用する」を「する」に設定してください。この設定が「しない」の場合、GETメソッドで送信されたデータについてはサーブレットコンテナとWebcoordinatorの両方で文字エンコーディングの変換が行われて正しくない変換結果となります。