Cosminexus 機能解説

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

付録G.2 ブラウザとアプリケーション間の文字コード変換

ブラウザとアプリケーション間で文字コード変換をするときに使用するメソッド,およびJSPとJavaScriptの実装時の注意事項について説明します。

<この項の構成>
(1) ブラウザとアプリケーション間の文字コード変換で使用するメソッド
(2) JSPのファイルインクルード時の注意事項
(3) JavaScriptを使用してクエリ文字列を作成する場合の注意事項

(1) ブラウザとアプリケーション間の文字コード変換で使用するメソッド

ブラウザを使用して送信されたクエリ文字列,POSTデータは,HttpServletRequestクラスのメソッドを使用して取得します。HttpServletRequestクラスのうち,文字コード変換に関係のあるメソッドと使用時の注意事項を示します。

(a) setCharacterEncodingメソッド

リクエストのメッセージボディで使われている文字コードを設定します。このメソッドは,getParameterメソッドや,getReaderメソッドを使って入力ストリームから読み込む前に実行されなければなりません。

(b) getParameterメソッド

パラメタの名称を指定して,リクエストに含まれるパラメタの値を取得します。取得した値はURLデコードされ,Unicodeに変換されます。パラメタの名称やパラメタの値を取得する前に,setCharacterEncodingメソッドを用いて文字コードを指定する必要があります。指定しなかった場合,ISO-8859-1としてUnicodeに変換されます。HttpServletRequestクラスのgetParameterNamesメソッド,getParameterValuesメソッド,getParameterMapメソッドも同様です。

(c) getInputStreamメソッド

リクエストのメッセージボディに含まれているバイナリデータを読み込むためのストリームを取得します。HTMLのフォームから送信されたデータからはエンコードされたままの文字列が取得されるので,取得した文字列を適切な文字コードでデコードする必要があります

(d) getReaderメソッド

リクエストのメッセージボディにBufferedReaderクラスを使い,文字データとして取り出します。文字データはメッセージボディと同じ文字コードに変換されます。HTMLのフォームから送信されたデータからはエンコードされたままの文字列が取得されるので,取得した文字列を適切な文字コードでデコードする必要があります。

(e) getQueryStringメソッド

リクエストされたURLのパスの後ろに含まれているクエリ文字列を返します。HTMLのフォームから送信されたデータからはエンコードされたままの文字列が取得されるので,取得した文字列を適切な文字コードでデコードする必要があります。

(2) JSPのファイルインクルード時の注意事項

JSPファイルのincludeディレクティブでファイルをインクルードする場合には,インクルード元となるJSPファイルでcontentType属性を使用してエンコードを指定してください。また,JSPファイルの文字コードはpageEncoding属性に指定してください。指定しない場合はインクルード先の文字が正常に表示されない場合があります。

(3) JavaScriptを使用してクエリ文字列を作成する場合の注意事項