Supporto Unicode per coppie di surrogati e sequenze di caratteri in combinazione
In Unicode Standard una coppia di surrogati viene definita come una rappresentazione di caratteri codificati per un singolo carattere astratto costituito dalla sequenza di due punti di codice. Il primo valore della coppia di surrogati è il surrogato alto, con un valore di codice a 16 bit nell'intervallo compreso tra U+D800 e U+DBFF. Il secondo valore della coppia è il surrogato basso, con un valore compreso tra U+DC00 e U+DFFF.
In Unicode una sequenza di caratteri in combinazione viene definita come una combinazione di un carattere base e uno o più caratteri in combinazione. Una coppia di surrogati può rappresentare un carattere base o un carattere di combinazione. Per ulteriori informazioni sulle coppie di surrogati e la combinazione di sequenza di caratteri, vedere la home page dello standard Unicode (informazioni in lingua inglese).
È importante ricordare che le coppie di surrogati rappresentano caratteri singoli a 32 bit. Non è possibile presumere che un valore di codifica Unicode a 16 bit esegua il mapping esattamente a un carattere. Tramite le coppie di surrogati un sistema di codifica Unicode a 16 bit può indirizzare un milione di punti di codice aggiuntivi a cui verranno assegnati i caratteri dallo standard Unicode.
In .NET Framework vengono supportati gli elementi di testo. Un elemento di testo è un'unità di testo che viene visualizzata come singolo carattere, chiamato grafema. Un elemento di testo può essere un carattere base, una coppia di surrogati o una sequenza di caratteri in combinazione. La classe StringInfo fornisce metodi che consentono all'applicazione di suddividere una stringa nei relativi elementi di testo e di scorrere gli elementi di testo. Per un esempio sull'uso della classe StringInfo, vedere Indicizzazione di stringhe.