2011-10-20 7 views
7

Come sono rappresentati i caratteri di 4 byte in C#? Come un char o un set di 2 caratteri?Come sono rappresentati i 4 byte di caratteri in C#

var someCharacter = 'x'; //put 4 bytes UTF-16 character 
+0

Puoi dare un esempio di "4 byte di carattere"? Renderebbe la tua domanda più chiara. – jv42

+0

@ jv42, ci sono alcuni caratteri UTF-16 che non possono essere rappresentati da 2 byte. Quindi è qualsiasi carattere con codice su 2^16 – SiberianGuy

+2

Vedere l'articolo "Unicode e .NET" di Jon Skeet - http://csharpindepth.com/Articles/General/Unicode.aspx – sll

risposta

11

C# può solo caratteri memorizzare dalla Basic Multilingual Plane nel tipo char. Per i personaggi al di fuori di questo piano devono essere utilizzati due char s - chiamati surrogates.

È inoltre possibile utilizzare una stringa letterale come ad esempio:

string s = "\U0001D11E"; 

Vedi UTF-16.