Esiste una shell dei comandi di Windows che visualizzerà i caratteri Unicode?

Supponendo che io abbia dei font installati che contengono i glifi appropriati, c’è una shell di comandi per Windows XP che visualizzerà i caratteri Unicode? Come minimo, due cose che dovrebbero visualizzare correttamente Unicode:

  • Elenchi di directory. Non mi interessa cosa devo digitare (dir, ls, get-childitem, ecc.), Purché i file con caratteri Unicode nei loro nomi appaiano con i glifi giusti, non con la casella dei caratteri non stampabili.
  • Elenchi di contenuti di file di testo. Di nuovo, non mi importa se è “meno”, “più”, “gatto”, “cane”, ecc., Purché i caratteri siano stampati. Riconosco che questo è più complicato a causa della codifica dei caratteri del file, quindi se devo specificarlo sulla riga di comando va bene per me.

Ecco cosa ho provato finora:

  • cmd.exe
  • Windows PowerShell; inclusa la versione multilingue.
  • Cygwin bash

Senza fortuna. Ho anche provato ad installare caratteri personalizzati per cmd / PowerShell . PowerShell e cmd.exe sembrano essere a conoscenza di Unicode nel senso che posso copiare / incollare la casella non stampabile da lì e verrà incollata in altre app con i caratteri corretti. Cygwin (?) Sembra convertire in? personaggio e che passa attraverso il copia / incolla.

Qualche idea?

Questo è stato un grosso problema in PowerShell v1. La versione 2 viene spedita con una “shell grafica” che corregge il problema, che in definitiva non è con PowerShell, ma con l’host della console Windows (che utilizza anche Cmd.exe). È ansible ottenere il CTP corrente per PowerShell v2, se lo si desidera.

In realtà, PowerShell v2.0 è stato finalizzato e spedito con il rilascio di Windows 7 e Windows Server 2008 R2 all’inizio di agosto. Inoltre, le versioni backported (Windows Vista / 2008) hanno raggiunto il loro traguardo Release Candidate proprio l’altro giorno; Windows XP / Windows Server 2003 dovrebbe seguire molto presto. Linky linky .

Per fare ciò con cmd.exe , è necessario utilizzare la finestra di dialogo delle proprietà della console per passare a un font TrueType Unicode.

Quindi utilizzare questi comandi:

CHCP 65001 DIR > UTF8.TXT TYPE UTF8.TXT 

comandi:

  • Passare console a UTF-8 (65001)
  • Reindirizza l’output da DIR a UTF8.TXT
  • Dump UTF-8 alla console

I caratteri dovranno ancora essere supportati dal font per essere visualizzati correttamente sulla console.

I18N: Unicode al prompt dei comandi di Windows (C ++; .Net; Java)

L’impostazione della codepage su UTF-8 con il comando “chcp 65001” dovrebbe aiutare a stampare il contenuto del file correttamente nella shell (utilizzando cmd.exe). Questo non funzionerà per gli elenchi di directory (codifica UTF-16 nei nomi di file NTFS).

Prova questo:

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

Chi usa msysgit:

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

Non dimenticare di cambiare il font della finestra in font TrueType con supporto UTF-8 (“Lucida Console”)

Ecco come posso ottenere l’output cinese in cmd.exe esecuzione su Windows 7 Pro English Version. Ho anche provato i nomi dei file con giapponese, russo e polacco e sembrano tutti visualizzati correttamente. Anche l’input sembra funzionare, almeno quando ho provato a fare una dir xxx* contenente caratteri non ascii.

  1. Installa console2 , che è un front-end per cmd.exe (e altre shell)

  2. Dopo l’installazione, segui queste istruzioni

    Elimina la chiave HKEY_CURRENT_USER\Console\Console2 command window nel registro.

    Importa i seguenti dati nel registro di 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. È ansible o meno dover cambiare il carattere. Inizialmente avevo impostato il carattere su @NimSum e i caratteri cinesi sono stati ruotati di 90 gradi. Poi sono passato a NimSum (senza @) ed è uscito correttamente. Poi, per curiosità, sono passato a Consola e ancora riesco a vedere i caratteri cinesi. Quindi non sono sicuro che sia effettivamente necessario impostare il carattere o meno.

Per una vera shell, prova PowerShell Plus. È ansible selezionare i caratteri Unicode e lavorare con altre lingue, non solo nell’editor, ma nella vera console.

Prova Console 2 . Attenzione però alle configurazioni dei colors / palette. Questi sono un po ‘buggy. Li ho confermati di non funzionare; si comportano come cmd.exe.

PowerShell V2 CTP3 all’interno di Console2 sembra farlo. L’unico svantaggio è che la codifica della console predefinita è UCS-2 LE anziché UTF-8.

A partire da novembre 2011 , MinTTY è ora l’emulatore di terminale predefinito di Cygwin (installato da setup.exe ). MinTTY è un fork dell’emulatore di terminale di PuTTY e, come tale, supporta il supporto Unicode e una compatibilità molto migliorata con altri emulatori di terminale.

Aprire un prompt dei comandi con privilegi elevati (eseguire cmd come amministratore). Interroga il registro per i tipi di carattere TrueType disponibili nella console:

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

Vedrai un risultato come:

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

Ora dobbiamo aggiungere un font TrueType che supporti i caratteri necessari come Courier New, lo facciamo aggiungendo degli zeri al nome della stringa, quindi in questo caso il prossimo sarà “000”:

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

Ora implementiamo il supporto UTF-8:

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

Imposta il carattere predefinito su “Courier New”:

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

Imposta la dimensione del carattere su 20:

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

Abilita la modifica rapida se ti piace:

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

Anche da UTF-16 su 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 

Un modo veloce e conveniente per farlo è su Explorer.

     1. Apri la finestra di Explorer.
     2. Attraversare il livello superiore della directory in cui si desidera trovare.
     3. Nell'angolo in alto a destra, c'è un campo di ricerca.