IBM PureData System for Analytics, バージョン 7.1

エンコーディングと正規化

ASCII 文字は、UTF-32 では 4 バイト、UTF-16 では 2 バイト、UTF-8 では 1 バイトを使用します。 ISO Latin 文字セットの各種の非 ASCII 文字は、これらのエンコーディングで 4 バイト、2 バイト、2 バイトを使用します。 しかし、汎用漢字 (中国語) の場合は、UTF-8 で 3 バイト、UTF-16 で 2 バイト (16 ビット) が必要です。また、希少漢字の中には UTF-16 と UTF-8 の両方で 4 バイトを使用するものもあります。

Unicode では、同じ文字を複数の方法でエンコードすることを許容しています。 例えば、文字 À は、Unicode の 1 文字「重アクセント記号付きのラテン大文字 A」で表記することも、「結合される重アクセント記号が後ろに付いたラテン大文字 A」という 2 文字で表記することもできます。 Unicode はこれらの文字を標準等価のシーケンスと定義します。IBM® Netezza® はこれらの 2 つのシーケンスを同一のものとして扱う必要があるため、データベース内に等価のシーケンスが共存することは許容されません。

前のリリースの Netezza は結合文字を使用したデータをロードしなかったため、アラビア語、タイ語、ウルドゥー語、ヒンディ語などの言語を Netezza はサポートできませんでした。 nzconvert コマンドの -nfc スイッチを使用すると、UTF-8、UTF-16、または UTF-32 フォーマットの入力を、International Components for Unicode (ICU) ルーチンを利用して Normalization Form C (NFC) フォーマットに変換できます。 Netezza は、NFC フォーマットのデータをロードします。

あいまいさを避けるため、Unicode では Normalization Form C (NFC) と Normalization Form D (NFD) の 2 つの正規化フォームについて定義しています(詳しくは http://www.unicode.org/reports/tr15/ for the specification の『For a description, see Unicode Standard Annex #15』を参照してください)。NFD は原則として「常に分解」するのに対し、NFC では「可能な限り合成」します。リリース 4.0.3 以降、Netezza は、NFC フォーマットのデータをロードします。

Netezza は、実際には、NFC をわずかに拡張したスーパーセットである NFC' をサポートしています。 このスーパーセットでは、Netezza は singleton decomposition 文字もサポートします。レガシー文字エンコーディングから標準変換した結果に singleton が含まれるケースがあるためです。 singleton については『Unicode Standard Annex #15』を参照してください。



フィードバック | Copyright IBM Corporation 2014 | 最終更新日: 2014-02-28