L'tree di prompt dei comandi mostra Unicode in console ma esegue il file in ASCII

In cmd.exe Windows 10, se lo faccio

 tree C:. ├───a │ ├───b │ └───etc... 

visualizza chiaramente le barre ei trattini Unicode correttamente sulla console.

Ma se reindirizzo questa output a un file

 tree > tree.txt 

il contenuto del file è:

 C:. ³ÄÄÄa ³ ÃÄÄÄb ³ ÀÄÄÄetc... 

Non è in grado di scrivere correttamente i caratteri Unicode.

Non riesce nemless a leggere ciò che ha scritto:

 tree > tree.txt type tree.txt C:.     a       b       etc... 

(può apparire qui come " " (punti interrogativi in ​​un quadrato inclinato) ma nella console appaiono come caselle vuote)

Ho già provato questi suggerimenti senza fortuna:

Provare chcp 1252 o chcp 65001 dalla row di command. Con Lucida Console o altro supporto per font.

 CMD /U /c tree > tree.txt 

Stavo usando questo command in modo errato, ora fisso, ma ho ancora lo stesso risultato di un semplice tree – appare bene nella console, ma l'output di file è ancora quei personaggi strano.

È strano che il text si visualizzi sulla console benissimo, ma la scrittura a file mette in risalto la codifica. Cosa potrebbe essere il problema qui?

La codifica generalmente utilizzata per i caratteri di disegno a scatola è 850, ma anche questo non aiuta nel mio sistema di Windows 8.1. Ho trovato solo un modo in giro per la ctriggers gestione di encoding di text di cmd : utilizzando un programma che gestisce bene la codifica, vale a dire PowerShell.

E 'il > reindirizzamento che rovina i personaggi, perciò appena usciamo l'output di tree e lo confonderemo in un file senza un semplice reindirizzamento cmd :

 Invoke-Expression "tree" | Out-File "tree.txt" 

Oppure, più breve:

 iex "tree" > "tree.txt" 

Per creare un'istanza di PowerShell che esegue tale command e quindi esce, utilizzarlo in un prompt dei comandi o in un file batch:

 powershell -command "iex \"tree\" > \"tree.txt\"" 

Il file risultante può essere visualizzato correttamente in Blocco note o da un type normale.