
Edité el siguiente archivo por lotes en el bloc de notas. En la esquina inferior derecha del bloc de notas, mostraba "UTF8". Guardé el archivo en formato ANSI.
Ahora, la esquina inferior derecha del bloc de notas mostraba "ANSI". Cerré el archivo y lo volví a abrir. El Bloc de notas mostraba "UTF8" en la esquina inferior derecha. Repetí el proceso anterior varias veces y obtuve el mismo resultado cada vez.
¿Es un archivo ANSI o un archivo UTF8?
¿O tal vez lo que se muestra en la esquina inferior derecha del bloc de notas no significa nada?
Esto está en Windows 11 Pro 23H2 construido 22631.3296 Windows Feature Experience Pack 1000.22687.1000.0. Bloc de notas de Windows 11.2401.26.0
[¡Lo siento! Olvidé agregar el archivo]
date /t >C:\health.txt
time /t >>c:\health.txt
sfc /scannow >>c:\health.txt
time /t >>c:\health.txt
sfc /scannow >>c:\health.txt
time /t >>c:\health.txt
Respuesta1
¿Es un archivo ANSI o un archivo UTF8?
Ambos
Si solo contiene caracteres ASCII, entonces es ANSI y UTF-8.
También lo son la mayoría de los demás conjuntos de caracteres y codificaciones. Esto se debe a que la mayoría de las codificaciones incluyen el conjunto ASCII utilizando puntos de código ASCII (valores numéricos).
Las excepciones serían las codificaciones de caracteres como el EBCDIC de IBM, que alguna vez fue muy común.
Además, Microsoft históricamente utilizó el término ANSI para referirse a un conjunto de caracteres que esperaban que el Instituto Nacional Estadounidense de Estándares (ANSI) publicara como uno de sus muchos estándares. ANSI no lo hizo. Un nombre más preciso o útil seríaPágina de códigos 1252. Decir que escribiste un archivo en ANSI es un poco como decir que pintaste tu cocina en el color Pantone o RAL.
Las aplicaciones de Microsoft generalmente escriben archivos UTF-8 con una marca de orden de bytes (BOM) que ayuda a sus aplicaciones a reconocer varias codificaciones Unicode, como UTF-16LE, UTF-16BE y UTF-8. Tenga en cuenta que una lista de materiales en un archivo UTF-8 solo sirve para identificar la codificación del contenido del archivo; no puede indicar el orden de los bytes, ya que eso no se aplica a UTF-8. Tener una BOM en un archivo de texto puede causar problemas, por ejemplo, impedir que funcionen los scripts de shell de Linux porque la BOM desplaza la firma ejecutable del script #!
.
Las aplicaciones de Microsoft utilizan funciones de biblioteca paraadivinarla codificación de un archivo a partir del contenido del archivo. Esto es notoriamente poco confiable, aunque ha mejorado con el tiempo.
Relacionado
Respuesta2
Sospecho que no importa. Un archivo que contiene solo texto en inglés suele ser ASCII, y luego simplemente no hay diferencia entre UTF-8 (sin marcar) y ASCII/ANSI.
Si desea forzar que el archivo sea UTF-8, debe guardarlo como UTF-8 con BOM. Si no hay una BOM ("Byte Order Mark", un marcador especial al principio del archivo), el editor tiene que adivinar, y cuando no hay caracteres especiales en el archivo (por ejemplo, signos diacríticos que no estén en inglés como ä, ö o ê) simplemente no importa, ya que las primeras 128 letras de todas las tablas de caracteres comunes son iguales.
Respuesta3
Esta indicación del bloc de notas de UTF-8 es falsa. Guardé un archivo de texto tanto en ANSI como en UTF-8, y ambos archivos eran completamente idénticos.
Parece que la implementación UTF-8 del bloc de notas carece seriamente de coherencia. El guardado en formato UTF-8 debería haber agregado un marca de orden de bytes (BOM) al principio del archivo, lo cual no hace.
Para manejar correctamente la diferencia entre ANSI y UTF-8 (con o sin BOM), necesita un editor de texto más evolucionado, por ejemplo bloc de notas++.