Encodage et normalisation

Les caractères ASCII prennent 4 octets en UTF-32, 2 octets en UTF-16 et 1 octet en UTF-8. Les divers caractères non ASCII des jeux de caractères latins de l'ISO prennent 4, 2 et 2 octets dans ces codages. Les caractères Han (chinois) courants utilisent cependant 3 octets en UTF-8 et 2 octets (ou, plus correctement, 16 bits) en UTF-16. Certains caractères Han rares prennent 4 octets à la fois en UTF-16 et en UTF-8.

Unicode permet d'encoder certains caractères de plusieurs façons. Par exemple, le caractère À peut être le seul caractère Unicode "Latin Capital Letter A with Accent Grave" ou deux caractères, "Latin Capital Letter A followed by Combining Grave Accent". Unicode les définit comme des séquences canoniquement équivalentes. Comme ces deux séquences doivent être traitées comme identiques, il n'autorise pas ces séquences équivalentes dans la base de données.

Dans les versions précédentes, Netezza Netezza Performance Server ne chargeait pas les données qui utilisaient des caractères combinés ; ainsi, Netezza Performance Server ne peut pas prendre en charge des langues telles que l'arabe, le thaï, l'urdu et l'hindi. La commande 'nzconvert dispose d'un commutateur -nfc que vous pouvez utiliser pour convertir une entrée au format UTF-8, -16 ou -32 au format Normalization Form C (NFC) en utilisant les routines International Components for Unicode (ICU). Netezza Performance Server charge des données au format NFC.

Pour éviter toute ambiguïté, Unicode définit deux formes de normalisation : La forme de normalisation C (NFC) et la forme de normalisation D (NFD). (Pour une description, voir l'annexe 15 de la norme Unicode sur http://www.unicode.org/reports/tr15/ pour la spécification) Le NFD consiste essentiellement à "toujours décomposer" et le NFC à "précomposer si possible". À partir de la version 4.0.3, Performance Server charge des données au format NFC.

Netezza Performance Server supporte en fait un léger surensemble de NFC, appelé NFC'. Le superset permet au Netezza Performance Server de prendre également en charge les caractères de décomposition singleton, car parfois les conversions standard de certains codages de caractères hérités aboutissent à des singletons. Pour une description des singletons, voir l'annexe 15 de la norme Unicode.