Condividi tramite


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 e contiene un valore di codice a 16 bit nell'intervallo compreso tra U+D800 e U+DBFF. Il secondo valore della coppia è il surrogato basso e contiene i valori nell'intervallo 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 in combinazione. Per ulteriori informazioni sulle coppie di surrogati e sulle sequenze di caratteri in combinazione, vedere Unicode Standard all'indirizzo www.unicode.org (informazioni in lingua inglese).

Il punto chiave da ricordare è che le coppie di surrogati rappresentano singoli caratteri a 32 bit e non è possibile presumere che un valore di codifica Unicode a 16 bit esegua il mapping esattamente su 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 di suddividere una stringa nei relativi elementi di testo e di scorrere gli elementi di testo. Il metodo StringInfo.GetNextTextElement, ad esempio, consente di recuperare una coppia di surrogati come un elemento di testo. Per un esempio sull'uso della classe StringInfo, vedere Indicizzazione di stringhe.

Vedere anche

Riferimenti

System.Text Namespace

Concetti

Unicode in .NET Framework
Indicizzazione di stringhe

Altre risorse

Codifica e localizzazione