Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第3部 Webアプリケーションの開発> 第21章 アプリケーション設計時の注意事項

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

ブラウザから送信されるデータにどの文字エンコーディングが使用されているかを 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アプリケーション環境定義ファイルを参照してください。

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

  1. uji.encodingリクエストパラメタでの指定
  2. ApplicationProfileクラスのgetRequestEncodingメソッドでの指定
  3. Webアプリケーション環境定義ファイルに記述したuji.defaultEncodingパラメタの指定

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

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

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2007