為DB2 UDB for Linux, UNIX, and Windows提供Unicode支援的實用方法

來源:互聯網
上載者:User

簡介

當今的應用程式常常設計為供國際化使用。這些應用程式可能需要處理不同語言的字串 。而 Unicode 正是一種與語言無關的字元表示標準。

由於 Java 程式設計語言已經在內部使用 Unicode 來表示字元,所以國際化應用程式的開發已經容易多了。但是,不能只考慮應用程式端。後端的 資料庫也必須能夠處理 Unicode 字元。本文將討論幾個主題,協助開發人員實現供國際化使用的 DB2 UDB 應用程式。

DB2 中支援何種 Unicode 標準?

只有一種 Unicode 標準,但是存在不同的 Unicode 字元編 碼方案。最常用的 Unicode 字元編碼是 UTF-8 和 UCS-2:

UTF-8:使用 1 到 4 位元組來表示每個 字元的編碼。這個編碼方案可以用一個位元組對 ASCII 字元進行編碼,用多個位元組(最多 4 位元組)對非 ASCII 字元進行編碼。

UCS-2:每個 Unicode 字元都編碼為 2 位元組。這種編碼方案可以表示超過 65000 個字元,這覆蓋了世界上最重要的語言的大多數字元。Java 內部也使用 UCS-2。

正如前面 提到的,完整的 Unicode 標準由超過 65000 個字元組成。在此範圍之外的其他字元基本上屬於可能不再 使用的語言,或者使用的情況有限。例如,某些亞洲字元只在名字中使用。這些額外字元也稱為補充字元 ,可以在 UTF-8 中用 4 位元組表示。另外,還有一種稱為 UTF-16 的編碼方案,它也可以用來表示補充字 符。為此,UTF-16 使用 2 x 2 位元組。

DB2 UDB 只支援 UTF-8 和 UCS-2 編碼。儘管 DB2 不支援 補充字元,但是補充字元可以儲存在 DB2 UDB 中。應該注意,超過 65000 個字元對於大多數應用程式足 夠了。在 Java 應用程式中處理補充字元需要特殊的機制。因此,處理補充字元不但需要資料庫支援,還 需要應用程式支援。

在 DB2 中如何使用 Unicode 編碼方案來儲存資料

可以將 Unicode 資料存放區在 DB2 Unicode 資料庫中。在 Unicode 資料庫中,所有的表都使用 Unicode 編碼方案儲存字 符資料。DB2 還允許在非 Unicode 資料庫中的 Unicode 表中使用 Unicode 格式儲存字元資料。

定義 Unicode 資料庫

Unicode 資料庫只以 Unicode 格式儲存字元資料,並不以 Unicode 格式顯 示資料。在建立資料庫時,DB2 決定資料庫的編碼頁。資料庫的編碼頁可以隱式或顯式地決定。

DB2 UDB for Linux, UNIX, and Windows 可以根據一個環境變數來隱式地決定編碼頁。在使用 CREATE DATABASE 語句建立資料庫時,將從作業系統的地區設定推匯出資料庫的編碼頁。對於 Windows 作業系統,將從註冊表中的 ANSI 編碼頁設定推匯出資料庫的編碼頁。對於 UNIX 作業系統,將從地區設 置推匯出環境,包括語言、地區和編碼集。應該注意,註冊表變數 DB2CODEPAGE 可以用來覆蓋編碼頁。 但是,如果 DB2CODEPAGE 註冊表變數設定為不正確的值,那麼可能會造成不可預期的結果和潛在的資料 損失。

還可以在 CREATE DATABASE 語句中使用 USING CODESET 子句顯式地指定編碼頁。帶 USING CODESET UTF-8 子句的 CREATE DATABASE 語句表示資料庫可以包含 UTF-8 或 UCS-2 編碼的字元資料。為了清楚 起見,建議顯式地定義 Unicode 資料庫:

CREATE DATABASE db_name USING CODESET  codeset 
TERRITORY territory_name COLLATE USING collating sequence 

其中的 codeset 應該以大寫字元指定,比如 UTF-8,territory_name 是提供地區特定支 持的編碼,collating sequence 表示對字元資料進行比較的方法。

例如,

CREATE  DATABASE UCSAMPLE USING CODESET UTF-8 TERRITORY US 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.