|
|
WebOTX Manual V10.2 (第4版) 目次を表示 |
コード変換について説明します。
CORBA通信でのコード変換について説明します。
C++アプリケーションとJavaアプリケーション間のCORBA通信で、日本語データを送受信する場合には、文字化けが発生しないように、適切なコードセットの設定を行う必要があります。C++アプリケーションとJavaアプリケーション間ではそのコードセットの設定情報を交換して、どのようにコード変換を行うかを決定しています。個々の文字列の内容をチェックしている訳ではありません。そのため、実際にC++アプリケーションがどのような文字列を送受信するかによって、正しいNativeコードセットの設定を行っておく必要があります。例えば、C++アプリケーションでSJISの文字列をデータベースやファイルから読み込んで送受信するのであれば、NativeコードセットもSJISに設定する必要があります。
詳細については、次を参照してください。
Object Broker C++では、 [ リファレンス > 設定 > CORBA通信基盤(Object Broker) > Object Broker C++における環境設定 ] の[ コードセットに関するオプション設定 ]を参照してください。
Webアプリケーションでは、リクエストやレスポンスの文字エンコーディングをさまざまなところで指定することができます。以下に、場所に応じた文字エンコーディングの指定方法を説明します。
Webブラウザから POSTメソッドで送付されるリクエストパラメータは、javax.servlet.ServletRequest.getParameter() を使って取得しますが、このパラメータを取得する際の文字エンコーディングは次のメソッドで指定します。
javax.servlet.ServletRequest.setCharacterEncoding()
このメソッドは、getParameter() の前に呼び出す必要があります。
Servlet からクライアントに出力するレスポンスの文字エンコーディングは次のメソッドで指定します。
javax.servlet.ServletResponse.setContentType()
引数として、"text/html; charset=Shift_JIS" のように指定します。このメソッドは、PrintWriterを取得する前に呼び出す必要があります。
Servlet の場合と同様です。
JSP からクライアントに出力するレスポンスの文字エンコーディングは次のように pageディレクティブで指定します。
<%@ page contentType="text/html; charset=Shift_JIS" %>
また、JSPファイル自体がどの文字エンコーディングで保存されているかを指定する要素として次のものがあります。
<%@ page pageEncoding="Shift_JIS" %>
もし、上記の指定をしていない場合、デフォルトの "ISO-8859-1" となりますが、このデフォルト値を変更する事も可能です。
変更するには、次のように otxadmin コマンドを使って default-encoding プロパティで指定します。ドメインを起動したあと、次のようにコマンドを実行してください。
otxadmin> set server.web-container.property.default-encoding=Shift_JIS
また、JSP を事前コンパイルする場合のデフォルト文字エンコーディングは nec-web.xml で次のように指定します。
<jsp-config>
<property name="precompileDefaultEncoding" value="Shift_JIS"/>
</jsp-config>
なお、デフォルト文字エンコーディングの指定は JSP をコンパイルする時に決定します。事前コンパイルした場合は nec-web.xml の指定が、そうでない場合は default-encoding プロパティ指定が有効になります。事前コンパイルでない場合、指定を変更するには Webアプリケーションを再配備し、JSP を再コンパイルする必要があります。