chcp 10000
echo hell☺ w☻rld♥! >> "UTF-16 file☺☻♥♦♣♠"
Bien, crea el archivo correcto, pero en el contenido hay signos de interrogación en lugar de caracteres Unicode. ¿Como arreglarlo?
Respuesta1
Su código no es correcto, ya que 10000 no es una página de códigos Unicode. VerIdentificadores de página de códigos.
10000 macintosh MAC Roman; Western European (Mac)
...
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
1201 unicodeFFFE Unicode UTF-16, big endian byte order; available only to managed applications
...
12000 utf-32 Unicode UTF-32, little endian byte order; available only to managed applications
12001 utf-32BE Unicode UTF-32, big endian byte order; available only to managed applications
...
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)
No estoy seguro de por qué, pero el símbolo del sistema parece interpretarlos como caracteres de control cuando se pegan, específicamente SOH (Inicio del encabezado, 01), STX (Inicio del texto, 02) y ETX (Fin del texto, 03).
En el lado positivo, PowerShell parece manejar esto correctamente. Notepad++ abrió el archivo de texto resultante como "UCS-2 Little Endian" automáticamente y muestra los caracteres correctos.
Ok, descubrí por qué UTF-8 no funcionaba para mí. La fuente debe configurarse en Lucida Console, ya que las fuentes ráster predeterminadas no son compatibles con Unicode.
Respuesta2
Ambos 65001.txt
y 1200.txt
contienen la misma cadena: абв™
pero en codificación diferente. El comando:
chcp 65001 & type 65001.txt
cambia con éxito la página de códigos, pero muestra la basura.
El comando:
type 1200.txt
muestra los caracteres correctos, pero el comando
for /f %A in ('type 1200.txt') do echo %A
muestra абвT
.
Entonces, cmd.exe ES capaz de trabajar con la página de códigos 1200 (con algunos límites), mientras que no puedo obtener resultados satisfactorios con la página de códigos 65001.