¿Hay un shell de comandos de Windows que muestre caracteres Unicode?

Suponiendo que tengo fonts instaladas que tienen los glifos apropiados, ¿hay un shell de comandos para Windows XP que muestre caracteres Unicode? Como mínimo, dos cosas que deberían mostrar Unicode correctamente:

  • Listado de directorios. No me importa lo que tengo que escribir (dir, ls, get-childitem, etc.), siempre y cuando los archivos con caracteres Unicode en sus nombres aparezcan con los glifos correctos, no el cuadro de caracteres no imprimibles.
  • Lista de contenido de archivos de texto. De nuevo, no me importa si es ‘menos’, ‘más’, ‘gato’, ‘perro’, etc., siempre que se impriman los caracteres. Reconozco que esto es más complicado debido a la encoding de caracteres del archivo, así que si tengo que especificar eso en la línea de comandos, eso está bien conmigo.

Esto es lo que he intentado hasta ahora:

  • cmd.exe
  • Windows PowerShell; incluida la versión multilingüe.
  • Cygwin bash

Sin suerte. Incluso intenté instalar fonts personalizadas para cmd / PowerShell . PowerShell y cmd.exe parecen ser conscientes de Unicode en el sentido de que puedo copiar / pegar desde ahí el cuadro no imprimible y pegará en otras aplicaciones con los caracteres correctos. Cygwin (?) Parece convertirse en? personaje y eso viene a través de la copia / pegar.

¿Algunas ideas?

Este fue un problema importante en PowerShell v1. La versión 2 se envía con un “shell gráfico” que corrige el problema, que finalmente no es con PowerShell, sino con el host de la consola de Windows (que también utiliza Cmd.exe). Puede obtener el CTP actual para PowerShell v2, si lo desea.

En realidad, PowerShell v2.0 se finalizó y se envió con el lanzamiento de Windows 7 y Windows Server 2008 R2 a principios de agosto. Además, las versiones backported (Windows Vista / 2008) alcanzaron su hito de Release Candidate el otro día; Windows XP / Windows Server 2003 debería seguir muy pronto. Linky Linky .

Para hacer esto con cmd.exe , deberá usar el cuadro de diálogo de propiedades de la consola para cambiar a una fuente Unicode TrueType.

Luego usa estos comandos:

CHCP 65001 DIR > UTF8.TXT TYPE UTF8.TXT 

Comandos:

  • Cambie la consola a UTF-8 (65001)
  • Redirigir la salida de DIR a UTF8.TXT
  • Vuelque UTF-8 a la consola

Los caracteres aún necesitarán ser compatibles con la fuente para mostrarse correctamente en la consola.

I18N: Unicode en el símbolo del sistema de Windows (C ++; .Net; Java)

Establecer la página de códigos en UTF-8 con el comando “chcp 65001” debería ayudarlo a imprimir los contenidos de los archivos correctamente en el shell (usando cmd.exe). Sin embargo, esto no funcionará para las listas de directorios (encoding UTF-16 en nombres de archivos NTFS).

Prueba esto:

 powershell.exe -NoExit /c "chcp.com 65001" 

Quién usa msysgit:

 powershell.exe -NoExit /c "chcp.com 65001; sh --login -i" 

No se olvide de cambiar la fuente de la ventana a la fuente TrueType con soporte UTF-8 (“Consola Lucida”)

Así es como puedo obtener la salida china en cmd.exe ejecuta en la versión en inglés de Windows 7 Pro. También probé nombres de archivo con japonés, ruso y polaco, y todos parecen mostrarse correctamente. La entrada también parece funcionar, al menos cuando intenté hacer un dir xxx* contenga caracteres que no sean ascii.

  1. Instale console2 , que es un front-end para cmd.exe (y otras shells)

  2. Después de la instalación, siga estas instrucciones

    Elimine la clave HKEY_CURRENT_USER\Console\Console2 command window en el registro.

    Importe los siguientes datos en el registro de Windows:

     Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console\Console2 command window] "CodePage"=dword:000003a8 "FontSize"=dword:000a0000 "FontFamily"=dword:00000036 "FontWeight"=dword:00000190 "FaceName"="細明體" "HistoryNoDup"=dword:00000000 
  3. Puede o no tener que cambiar la fuente. Inicialmente tenía la fuente establecida en @NimSum , y los caracteres chinos salieron girados 90 grados. Luego NimSum a NimSum (sin el @) y salió correctamente. Luego, solo por curiosidad, me Consola a Consola y todavía puedo ver los caracteres chinos. Así que no estoy seguro si realmente tiene que configurar la fuente o no.

Para un shell verdadero, pruebe PowerShell Plus. Puede seleccionar fonts Unicode y trabajar con otros idiomas, no solo en el editor, sino en la consola real.

Prueba la consola 2 . Sin embargo, tenga cuidado con las configuraciones de colores / paleta. Esos son un poco fallos. Los he confirmado que no funcionan; se comportan como cmd.exe.

PowerShell V2 CTP3 dentro de Console2 parece hacer eso. El único inconveniente es que la encoding de la consola predeterminada es UCS-2 LE en lugar de UTF-8.

A partir de noviembre de 2011 , MinTTY es ahora el emulador de terminal predeterminado de Cygwin (instalado por setup.exe ). MinTTY es una bifurcación del emulador de terminal PuTTY, y como tal, cuenta con el soporte adecuado para Unicode y una compatibilidad muy mejorada con otros emuladores de terminal.

Abra un símbolo del sistema elevado (ejecute cmd como administrador). Consulte en su registro las fonts TrueType disponibles en la consola de la siguiente manera:

 REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" 

Verás un resultado como:

 0 REG_SZ Lucida Console 00 REG_SZ Consolas 936 REG_SZ *新宋体932 REG_SZ *MS ゴシック 

Ahora necesitamos agregar una fuente TrueType que admita los caracteres que necesita como Courier New, lo hacemos agregando ceros al nombre de la cadena, por lo que en este caso el siguiente sería “000”:

 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New" 

Ahora implementamos el soporte UTF-8:

 REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f 

Establecer la fuente predeterminada en “Courier New”:

 REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f 

Establecer tamaño de fuente a 20:

 REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f 

Habilite la edición rápida si lo desea:

 REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f 

También desde UTF-16 en cmd.exe

  Open/run cmd.exe Click on the icon at the top-left corner Select properties Then "Font" bar Select "Lucida Console" and OK. Write Chcp 10000 at the prompt Finally dir /b 

Una forma rápida y conveniente de hacerlo es en el Explorer.

     1. Abra la ventana del Explorador.
     2. Atraviesa el nivel superior del directorio donde desea encontrar.
     3. En la esquina superior derecha, hay un campo de búsqueda.