validar sublime saber online detectar convertir como codificacion cambiar bom archivos archivo text unicode encoding character-encoding

sublime - Cómo determinar la tabla de codificación de un archivo de texto



detectar codificacion online (5)

Tengo archivos .txt y .java y no sé cómo determinar la tabla de codificación de los archivos (Unicode, UTF-8, ISO-8525, ...). ¿Existe algún programa para determinar la codificación del archivo o para ver la codificación?


Abra el archivo con Notepad ++ y verá en la esquina inferior derecha el nombre de la tabla de codificación. Y en la codificación del menú puede cambiar la tabla de codificación y guardar el archivo.


En un archivo de texto, no hay un encabezado que guarde la codificación más o menos. Puede probar el comando linux / unix find que intenta adivinar la codificación:

file -i unreadablefile.txt

o en algunos sistemas

file -I unreadablefile.txt

Pero eso a menudo te da text/plain; charset=iso-8859-1 text/plain; charset=iso-8859-1 aunque el archivo es ilegible (glifos crípticos).

Esto es lo que hice para encontrar la codificación de archivo correcta para un archivo ilegible y luego traducirlo a utf8, luego de instalar iconv . Primero intenté todas las codificaciones, mostrando ( grep ) una línea que contenía la palabra www. (una dirección de sitio web):

for ENCODING in $(iconv -l); do echo -n "$ENCODING "; iconv -f $ENCODING -t utf-8 unreadablefile.txt 2>/dev/null| grep ''www''; done | less

Esta última línea de comando muestra la codificación del archivo probado y luego la línea traducida / transcodificada.

Hubo algunas líneas que mostraron resultados legibles y consistentes (un idioma a la vez). Intenté algunos de ellos manualmente, por ejemplo:

ENCODING=WINDOWS-936; iconv -f $ENCODING -t utf-8 unreadablefile.txt -o test_with_${ENCODING}.txt

En mi caso, era una codificación de Windows china, que ahora es legible (si sabes chino).


No puede detectar de manera confiable la codificación de un archivo de texto; lo que puede hacer es hacer una conjetura al buscar un carácter que no sea ASCII y tratar de determinar si es una combinación unicode lo que hace sentido en los idiomas que está analizando.


Si está en Linux, intente con el file -i filename.txt .

$ file -i vol34.tex vol34.tex: text/x-tex; charset=us-ascii

Como referencia, aquí está mi entorno:

$ which file /usr/bin/file $ file --version file-5.09 magic file from /etc/magic:/usr/share/misc/magic

Algunas versiones de file (por ejemplo, archivo-5.04 en OS X / macOS) tienen conmutadores de línea de comandos ligeramente diferentes:

$ file -I vol34.tex vol34.tex: text/x-tex; charset=us-ascii $ file --mime vol34.tex vol34.tex: text/x-tex; charset=us-ascii

Además, echa un vistazo here .


Vea esta pregunta y la respuesta seleccionada . No hay una manera segura de hacerlo. Como mucho, puedes descartar cosas. Las codificaciones UTF es poco probable que obtenga falsos positivos, pero las codificaciones de 8 bits son difíciles, especialmente si no conoce el idioma de inicio. Actualmente, ninguna herramienta maneja todas las codificaciones comunes de 8 bits de Mac, Windows, Unix, pero la respuesta seleccionada proporciona un enfoque algorítmico que debería funcionar adecuadamente para un cierto subconjunto de codificaciones.