¿Qué versión de Unicode es compatible con qué plataforma .NET y en qué versión de Windows con respecto a las clases de caracteres?
Pregunta actualizada ¹
Con respecto a las clases de caracteres, comparación, clasificación, normalización y colaciones, ¿qué versión o versiones de Unicode son compatibles con qué plataformas .NET?
Pregunta original
Recuerdo haber leído algo vagamente que .NET admite la versión 3.0 de Unicode y que la codificación interna UTF-16 no es realmente UTF-16, sino que en realidad usa UCS-2, que no es lo mismo. Parece, por ejemplo, que los caracteres por encima de U + FFFF no son posibles, es decir, considere:
string s = "\u1D7D9"; // ("Mathematical double-struck digit one")
y almacena la cadena"ᵽ9"
.
Básicamente estoy buscando referencias definitivas de respuestas a lo siguiente:
Si no es cierto UTF-16 en .NET, ¿qué es? ¿Qué versión de Unicode es compatible con .NET?Si las versiones recientes no son compatibles o planificadas en el futuro cercano, ¿alguien sabe de una biblioteca (no) comercial o cómo puedo solucionar este problema?¹) Actualicé la pregunta ya que con el paso del tiempo, parece más apropiado con respecto a las respuestas y a la comunidad en general. Dejé la pregunta original en lugar de qué partes han sido respondidas en los comentarios. Además, el antiguo UCS-2 (sin sustitutos) se usaba en versiones de Windows de 32 bits que ahora son antiguas, .NET siempre ha usado UTF-16 (con sustitutos) internamente.