2010-01-14 28 views

Respuesta

11

Hay algunos hacks que puede encontrar que demuestran cómo escribir conjuntos de caracteres multibyte en la consola, pero no son confiables. Requieren que la fuente de la consola sea una que lo soporte y, en general, es algo que evitaría. (Todas estas técnicas se rompen si su usuario no realiza un trabajo adicional de su parte ... por lo que no son confiables.)

Si necesita escribir una salida Unicode, le recomiendo que haga una aplicación GUI para manejar esto , en lugar de usar la consola Es bastante fácil hacer una GUI simple para simplemente escribir su salida a un control que sea compatible con Unicode.

+10

Supongo que 'Console.OutputEncoding' no existía a principios de 2010, pero sería bueno mencionarlo en la respuesta aceptada. – 3ventic

3

No puede imprimir caracteres Unicode en la consola, solo admite los caracteres que están disponibles en la página de códigos actual. Los caracteres que no están disponibles se convierten al equivalente más cercano o un signo de interrogación.

+0

Considere que UTF8 tiene una página de códigos (65001), esto sugiere que solo necesita cambiar las páginas de códigos? – MSalters

+0

@MSalters: la consola normalmente solo puede usar páginas de códigos de 8 bits. – Guffa

+0

No es cierto. Puedes simplemente configurar "chcp 65001". Yo uso ConEmu junto con esta configuración para mostrar las fuentes Unicode sin ningún problema. – jhclark

37
Console.OutputEncoding = Encoding.UTF8; 
0

Usar Console.OutputEncoding será suficiente para esto. Todos los objetos de cadena en .NET son por defecto unicode, por lo que cambiar la codificación de salida de la consola a UTF-8 funcionará como lo desee en las instalaciones modernas de Windows.

La codificación predeterminada en la consola depende de la configuración, pero lo más probable es que IBM437 sea para el idioma de EE. UU. O para alguna página de códigos local.

Cuestiones relacionadas