Caratteri supplementari

Le stringhe nchar e nvarchar consentono di archiviare ogni carattere come valore a 16 bit in una codifica denominata UCS-2. La codifica, definita dalle versioni di Unicode antecedenti al 1996, supporta i caratteri nell'intervallo da U+0000 a U+FFFF. Nelle versioni più recenti di Unicode sono stati definiti ulteriori caratteri nell'intervallo da U+10000 a U+10FFFF chiamati caratteri supplementari. Questi caratteri vengono archiviati come coppie di valori a 16 bit, definite coppie di surrogati, in una codifica chiamata UTF-16. In tutte le nuove regole di confronto di livello 100 è supportato l'ordinamento linguistico con caratteri supplementari.

Se si utilizzano caratteri supplementari, considerare i limiti seguenti:

  • I caratteri supplementari possono essere utilizzati solo in operazioni di ordinamento e confronto solo con le versioni 90 o successive delle regole di confronto.

  • Poiché i caratteri supplementari sono archiviati come due valori a 16 bit, la funzione LEN() restituisce il valore 2 per ogni carattere supplementare contenuto nella stringa di argomento. Allo stesso modo, le funzioni CHARINDEX e PATINDEX non rappresentano in modo corretto l'occorrenza di caratteri supplementari all'interno di stringhe di caratteri.

  • Le funzioni LEFT, RIGHT, SUBSTRING, STUFF e REVERSE possono dividere qualsiasi coppia di surrogati, provocando risultati imprevisti.

  • L'utilizzo dei caratteri supplementari con i caratteri jolly di sottolineatura (_), percentuale (%) e accento circonflesso (^) non è supportato.

  • L'utilizzo dei caratteri supplementari in metadati, ad esempio in nomi di oggetti di database, non è supportato.