.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 ????? ????