que number non hace code characters accented .net unicode c#-4.0

.net - number - Salida de cadena Unicode C#



unicode code point (3)

Tengo una función para convertir una cadena en una cadena Unicode:

private string UnicodeString(string text) { return Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(text)); }

Pero cuando estoy llamando a esta función, el resultado de salida es incorrecto. Parece que mi función no funciona.

Console.WriteLine(UnicodeString("добры дзень")) imprimiendo en la consola solo preguntas como esa: ????? ???? ????? ????

¿Hay alguna manera de decir a la consola que se muestre correctamente?

ACTUALIZAR

Parece que el problema no está en Unicode. Creo que tal vez muestra signos de interrogación porque no estoy teniendo la configuración regional correcta en el sistema (Windows 7).

¿Hay alguna manera de hacerlo funcionar sin cambiar la configuración regional?


Primero, cambie la codificación de salida a UTF8:

Console.OutputEncoding = Encoding.UTF8; Console.WriteLine("добры дзень");

Ahora todavía verá signos de interrogación. La razón es que la fuente de la consola predeterminada no admite letras cirílicas . Cambiar la fuente de la consola:

Si tiene suerte, debería encontrar una fuente diferente con soporte Unicode:

Cambia la fuente, y deberías poder ver tu texto:

En el caso general, si desea mostrar todos los caracteres Unicode de manera confiable, la Consola probablemente no sea adecuada para usted. Ver también: fuente de la consola C # (los comentarios también son interesantes)


Simplemente haga simple Console.WriteLine("добры дзень"); no hay necesidad de ninguna conversión


private string UnicodeString(string text) { return text; }

El text cadena ya está en Unicode. Todas las cadenas internas de C # son Unicode. Cuando lo convierte a ASCII, pierde caracteres. Es por eso que tienes ????? ????