データの保管と転送
1 つのストアが複数の言語でページを表示することが可能です。
これは、それらの言語が、異なる文字セットを使用する場合も含みます。 このような機能を実現するため、WebSphere Commerce データベースに保管されているデータは多くの言語に対応できる汎用形式になっています。 Web ブラウザーがすべて同一の文字セットをサポートしているわけではないため、データが JSP ページによって要求されると、それは該当の文字セットに変換されます。
以下に、データがデータベースからブラウザーにどのように伝えられるかを示します。
- テキスト・データが Unicode UTF-8 エンコード方式で WebSphere Commerce データベースに保管される。
- JDBC ドライバーがデータベースからデータをロードし、UTF-8 から Java 固有の 16 ビット Unicode によるエンコード方式に変換する。
- JSP ページが Java 16 ビット・エンコード方式を使用してデータが出力される。
- WebSphere Application Server が、JSP 出力を 16 ビット Unicode からターゲット・エンコードに変換する。
エンコードは、JSP ページまたはプロパティー・ファイルのいずれかで指定できます。
たとえば、日本語ページ用に Shift-JIS エンコードを指定する場合、次のようにできます。
- JSP page (JSP ページ)
<%@ page contentType="text/html; charset=Shift-JIS"%>
- プロパティー・ファイル
ENCODESTATEMENT = text/html; charset=Shift-JIS
生成された JSP ページの文字エンコードは、JSP テンプレートの以下のステートメントを使用して設定されます。
<%
response.setContentType(infashiontext.getString("ENCODESTATEMENT")); %>
すべてのブラウザーであらゆるエンコード・スキームを認識できるわけではないため、UTF-8 や Shift-JIS などの広く普及したエンコード・スキームを指定してください。
- 変換されたデータが、ブラウザーに戻される。
- ブラウザーが、ヘッダーで指定されたエンコード方式に基づいて、HTTP 応答を解釈する。
以下に、データがブラウザーからデータベースにどのように伝えられるかを示します。
- データがブラウザーに入力される。
マルチリンガル・データは、入力方式を使って入力できます。
- WebSphere Commerce が、ブラウザーから送られてくるデータを、setCharacterEncoding() メソッドで Java 16 ビット・エンコード方式に変換する。
LANGUAGE テーブルの各 LANGUAGE_ID は、ENCODING 列を使用してエンコード値にマップされます。
この値はブラウザーから送られてくるデータの解釈に使用されます。
- データがデータベースに送られ、データベース内で Java 16 ビットから UTF-8 エンコード方式に変換され、この形で保管される。