domanda aggiornato ¹Quale versione di Unicode è supportata da quale piattaforma .NET e su quale versione di Windows si tratta di classi di caratteri?
Per quanto riguarda le classi di personaggi, il confronto, l'ordinamento, la normalizzazione e regole di confronto, quale versione Unicode o le versioni sono supportate dalle piattaforme che NET?
domanda originale
mi ricordo un po 'vagamente di aver letto che .NET supportato Unicode versione 3.0 e che la codifica UTF-16 interna non è realmente UTF-16, ma in realtà utilizza UCS-2, che non è il stesso. Sembra, per esempio, che i caratteri sopra U + FFFF non sono possibili, cioè considerare:
string s = "\u1D7D9"; // ("Mathematical double-struck digit one")
e memorizza la stringa "ᵽ9"
.
praticamente sto cercando riferimenti definitivi di risposte al seguente:
- Se non è vero UTF-16 in .NET, che cos'è?
- Quale versione di Unicode è supportata da .NET?
- Se le versioni recenti non sono supportate o pianificate nel prossimo futuro, qualcuno conosce una libreria (non commerciale) o come posso risolvere questo problema?
¹) Ho aggiornato la questione con il tempo che passa, sembra più appropriato rispetto alle risposte e alla comunità più ampia. Ho lasciato la domanda originale al posto di quali parti hanno ricevuto risposta nei commenti. Anche il vecchio UCS-2 (nessun surrogato) è stato utilizzato nelle versioni Windows a 32 bit antiche, .NET ha sempre utilizzato internamente UTF-16 (con surrogati).
Che cosa stai cercando di fare con quei personaggi? Inserirli in una pagina Web con ASP.NET? Visualizzarli in un'interfaccia WPF o WinForms? –
Che cosa significa "non sembra funzionare" in questo contesto? – Gabe
@JoeStrommen: stiamo implementando un nuovo set di strumenti per la trasformazione dei dati basati su XML e sto cercando di scoprire se posso dire "supportiamo Unicode fino a 6.0" o se dovremmo dire qualcos'altro. Inoltre, sto cercando di scoprire come evitare le limitazioni possibili in .NET. – Abel