WebOTX Manual V10.2 (第4版) 目次を表示 |
WebアプリケーションのGETメソッド中で取得したパラメータで文字化けが発生する場合、 次のいずれかの対策が必要です。
WebOTXでエンコードの指定を行う。
WebOTXにエンコード指定の設定を行うことで、コードを変換します。パラメータを一律同じ
文字コードに変換する場合に利用できます。
エンコードの指定は、otxadminコマンドを用いて次のように設定することができます。
otxadmin> set --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート> server.network-config.protocols.protocol.<リスナ>.http.uri-encoding=<文字エンコード>
文字エンコードには、”Windows-31J”などが指定できます。
SetCharacterEncoding()で文字エンコードを指定する。
Webアプリケーションで、SetCharacterEncoding()で文字エンコードを指定して、パラメータの
コードを変換します。
SetCharacterEncoding()で文字エンコードを指定するには、otxadminコマンドを用いて次のように
設定する必要があります。
otxadmin> set --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート> server.network-config.protocols.protocol.<リスナ>.http.use-body-encoding-for-uri=true
フィルターを利用する。
Webアプリケーションのフィルターで、パラメータをエンコードする方式です。フィルターの
処理によって、パラメータのエンコードを行います。
フィルターのサンプルとしては、Tomcatに付属しているSetCharacterEncodingFilter.javaが
ありますので、これが利用できます。
Webアプリケーションでエンコードする。
取得したパラメータ文字列を、Webアプリケーションの処理で、文字コードを指定して、エンコードします。
例として、strParamに設定したパラメータを、"Windows-31J"に変換するには次のように処理します。
String strEncoded = new String(strParam.getBytes("8859_1"), "Windows-31J");