Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

4.6.5 デフォルトの文字エンコーディング適用時の注意事項

デフォルトの文字エンコーディングの適用については,次の点に注意してください。

<この項の構成>
(1) レスポンスへのデフォルトの文字エンコーディングの設定の可否について
(2) getCharacterEncodingメソッドに適用される文字エンコーディング
(3) XML宣言内の文字エンコーディング
(4) JSPファイルへの文字エンコーディングの適用
(5) 07-00でJSP事前コンパイルを実行したWebアプリケーションへの文字エンコーディング設定
(6) デフォルトエラーページの文字エンコーディングについて

(1) レスポンスへのデフォルトの文字エンコーディングの設定の可否について

次の場合は,レスポンスへのデフォルトの文字エンコーディングの設定は有効になりません。

注※1 デフォルトの文字エンコーディングを適用させる静的コンテンツの拡張子を指定するためのパラメタです。

注※2 次のどちらかの条件のあとに出力された静的コンテンツの場合は,レスポンスへのデフォルトの文字エンコーディングの設定が有効になります。
  • レスポンスに対して文字エンコーディングを設定しない場合で,サーブレット,JSP,フィルタなどで,javax.servlet.ServletResponseクラスのgetWriterメソッドによってjava.io.PrintWriterオブジェクトが取得されるとき。
  • setAttributeメソッドが実行されても,リクエストオブジェクトがラップされる場合で,そのリクエストオブジェクトが,setAttributeメソッドを呼び出さないリクエストラッパでラップされるとき。

なお,HTTPレスポンス圧縮フィルタを使用している場合は,レスポンスへのデフォルトの文字エンコーディングの設定は有効になりません。

(2) getCharacterEncodingメソッドに適用される文字エンコーディング

Servlet仕様で文字エンコーディングを設定していない場合,次に示すServlet APIのメソッドには,J2EEサーバ単位またはWebアプリケーション単位で設定したデフォルトの文字エンコーディングが適用されます。

ただし,setCharacterEncodingメソッドで文字エンコーディングを変更しているときは,setCharacterEncodingメソッドで変更した文字エンコーディングが取得されます。

また,レスポンスの場合,javax.servlet.ServletResponseのresetメソッドを使用してレスポンスデータを初期化したときは,getCharacterEncodingメソッドで取得できる文字エンコーディングは,Cosminexusで設定した文字エンコーディングとなります。

なお,Servlet仕様での文字エンコーディングの設定方法については,「4.6.6 Servlet仕様での文字エンコーディング設定」を参照してください。

(3) XML宣言内の文字エンコーディング

JSPドキュメントおよびXML形式のタグファイルで,WebコンテナがXML宣言を自動生成する場合,XML宣言内の文字エンコーディングの宣言には,レスポンスボディのエンコードに適用されたデフォルトの文字エンコーディングが出力されます。

(4) JSPファイルへの文字エンコーディングの適用

JSPファイルへの文字エンコーディング設定は,JSPファイルのコンパイル時に適用されます。このため,すでにJSPファイルがコンパイルされている状態で,文字エンコーディングの設定を追加または変更しても,追加または変更した文字エンコーディングはJSPファイルに反映されません。設定を反映させるためには,再度,コンパイルを実施してください。

(5) 07-00でJSP事前コンパイルを実行したWebアプリケーションへの文字エンコーディング設定

07-00でJSP事前コンパイルを実行したWebアプリケーションに対して,レスポンスへのデフォルトの文字エンコーディングを設定する場合は,再度,JSP事前コンパイルを実施してください。

デフォルトの文字エンコーディングの設定単位ごとに説明します。

なお,JSP事前コンパイル実行時でのデフォルトの文字エンコーディング設定については,「4.6.4 JSP事前コンパイル実行時の文字エンコーディングの適用」を参照してください。

(6) デフォルトエラーページの文字エンコーディングについて

デフォルトエラーページの文字エンコーディングはUTF-8に設定されているため,デフォルトエンコーディングは適用されません。