2012-08-14 12 views
12

È possibile utilizzare echo per generare un file di testo UTF-8? Per esempio se voglio generare un file che contiene il carattere "E"Echo Caratteri UTF-8 nel batch di Windows

echo "abcd ę" > out.txt 

(il file batch è codificato con UTF-8)

il risultato è un file codificato ANSI e la "E "il personaggio si trasforma in" ê ". Come posso convincere "echo" a generare un file UTF-8?

Se non è possibile, è possibile modificare la codifica del file di testo dopo averlo creato? C'è qualche strumento nel pacchetto gnuwin32 che può aiutarmi a cambiare la codifica?

grazie

+0

Quando l'ho provato out.txt conteneva 'abcd ê' visto dal Blocco note, sebbene nella finestra del prompt dei comandi assomigliasse a 'abcd ─Ö'. Non ho avuto affatto un 'ê'. – Neil

risposta

2

Il problema era che il file conteneva la riga:

<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type> 

e poi Notepad2 e Firefox stava cambiando il set di caratteri, mostrando una invece di e. Nel semplice blocco note, il file sembra ok. La soluzione era quella di aggiungere la firma UTF-8 (Byte Order Mark) all'inizio del file:

echo1 -ne \xEF\xBB\xBF > out.htm 

(echo1 è da GnuWin32)

grazie per le risposte

7

Prova partendo CMD.exe con l'opzione/U: provoca tutti gli output tubo da Unicode anziché ANSI.

16

Usa chcp comando per cambiare la code page attiva in 65001 per utf-8.

chcp 65001 
+0

grazie, funziona –

+2

non funziona per me; ( – brunobliss

1

chcp 65001

come menzione da @cuixiping è una buona risposta, ma richiedono di cambiare il font di default cmd per Lucida Console per esempio, come potete leggere qui: https://superuser.com/questions/237081/whats-the-code-page-of-utf-8#272184

e, naturalmente, come citato da @BearCode, il testo dovrebbe essere in utf-8 ... nel mio caso, con Vim sotto GNU/Linux con accesso remoto, ma notepad ++ è giusto w anche a me!

Problemi correlati