2012-08-14 14 views
12

¿Puedo usar echo para generar un archivo de texto UTF-8? Por ejemplo si quiero generar un archivo que contiene el carácter "e"Echo caracteres UTF-8 en el lote de Windows

echo "abcd ę" > out.txt 

(el archivo por lotes está codificado con UTF-8)

el resultado es un archivo codificado ANSI y el "E "el personaje se transforma en" ê ". ¿Cómo puedo convencer a "echo" para generar un archivo UTF-8?

Si no es posible, ¿puedo cambiar la codificación del archivo de texto después de crearlo? ¿Hay alguna herramienta en el paquete gnuwin32 que pueda ayudarme a cambiar la codificación?

gracias

+0

Cuando lo probé ,.txt contenía 'abcd ę' como se ve en el Bloc de notas, aunque en la ventana del símbolo del sistema parecía' abcd ─Ö'. No obtuve un 'ê' en absoluto. – Neil

Respuesta

2

El problema era que el archivo contiene la línea:

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

y luego Notepad2 y Firefox estaba cambiando el juego de caracteres, mostrando un lugar de E. En el Bloc de notas, el archivo se ve bien. La solución fue añadir la firma UTF-8 (Byte Order Mark ') al principio del archivo:

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

(echo1 es de GnuWin32)

gracias por las respuestas

7

intentar el inicio de CMD.exe con el modificador/T: causa que toda la salida de tubo para ser Unicode en lugar de ANSI.

16

Uso chcp comando para cambiar la página de códigos activos a 65001 para utf-8.

chcp 65001 
+0

gracias, funciona –

+2

no funciona para mí; ( – brunobliss

1

chcp 65001

como mención por @cuixiping es una buena respuesta, pero se requieren para cambiar la fuente por defecto cmd para Lucida Console por ejemplo, como se puede leer aquí: https://superuser.com/questions/237081/whats-the-code-page-of-utf-8#272184

y, por supuesto, como se menciona en @BearCode, el texto debe estar en utf-8 ... en mi caso, con Vim en GNU/Linux con acceso remoto, pero el bloc de notas ++ está a la derecha w ay también!

Cuestiones relacionadas