資料儲存與轉送
單一商店可採多國語言來顯示頁面,即使各個語言所用的字集不同。
為了達到此目標,資料會以廣用格式儲存在 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 頁面 (JSP page)
<%@ 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 位元編碼。
使用 ENCODING 直欄,將 LANGUAGE 表格中的每個 LANGUAGE_ID 映射至某個編碼值。
此編碼值用來解譯來自瀏覽器的資料。
- 將資料傳給資料庫,然後將資料從 Java 16 位元轉換為 UTF-8 編碼,
並且以此格式儲存在資料庫中。