Codifica e normalizzazione

I caratteri ASCII richiedono 4 byte in UTF-32, 2 byte in UTF-16 e 1 byte in UTF-8. I vari caratteri non ASCII degli insiemi di caratteri latini ISO richiedono 4, 2 e 2 byte in queste codifiche. I comuni caratteri Han (cinesi), invece, utilizzano 3 byte in UTF-8 e 2 byte (o, più correttamente, 16 bit) in UTF-16. Alcuni rari caratteri Han richiedono 4 byte sia in UTF-16 che in UTF-8.

Unicode consente di codificare alcuni caratteri in più di un modo. Ad esempio, il carattere À può essere il singolo carattere Unicode "Lettera maiuscola latina A con accento grave" o due caratteri, "Lettera maiuscola latina A seguita da accento grave combinato". Unicode definisce queste sequenze come canonicamente equivalenti. Poiché queste due sequenze devono essere trattate come identiche, il database non ammette queste sequenze equivalenti.

Nelle versioni precedenti, Netezza Performance Server non caricava i dati che utilizzavano caratteri combinati; di conseguenza, Netezza Performance Server non può supportare lingue come l'arabo, il tailandese, l'urdu e l'hindi. Il comando 'nzconvert ha un'opzione -nfc che può essere usata per convertire l'input in formato UTF-8, -16 o -32 in formato Normalization Form C (NFC) usando le routine International Components for Unicode (ICU). Netezza Performance Server carica i dati in formato NFC.

Per evitare ambiguità, Unicode definisce due forme di normalizzazione: La forma di normalizzazione C (NFC) e la forma di normalizzazione D (NFD). (Per una descrizione, vedere l'allegato #15 dello standard Unicode su http://www.unicode.org/reports/tr15/ per la specifica) NFD è essenzialmente "decomporre sempre" e NFC è "precomporre dove possibile". A partire dalla release 4.0.3, Performance Server carica i dati in formato NFC.

Netezza Performance Server supporta in realtà un leggero superset di NFC, chiamato NFC'. Il superset consente a Netezza Performance Server di supportare anche i caratteri di decomposizione singleton, poiché a volte le conversioni standard da alcune codifiche di caratteri legacy danno luogo a caratteri singleton. Per una descrizione dei singleton, vedere l'allegato #15 dello standard Unicode.