Informalmente, la mayoría de nosotros entiende que hay archivos 'binarios' (archivos de objeto, imágenes, películas, ejecutables, formatos de documento de propiedad, etc.) y archivos 'de texto' (código fuente, archivos XML, HTML, correo electrónico, etc.) .¿Cómo distingo entre archivos 'binarios' y 'texto'?
En general, necesita saber el contenido de un archivo para poder hacer algo útil con él, y formar ese punto de vista si la codificación es 'binaria' o 'texto', en realidad no importa . Y, por supuesto, los archivos solo almacenan bytes de datos para que sean todos 'binarios' y 'texto' no significa nada sin conocer la codificación. Y, sin embargo, todavía es útil hablar sobre archivos 'binarios' y 'de texto', pero para evitar ofender a nadie con esta definición imprecisa, continuaré usando citas 'de susto'.
Sin embargo, hay varias herramientas que funcionan en una amplia gama de archivos, y en términos prácticos, desea hacer algo diferente en función de si el archivo es 'texto' o 'binario'. Un ejemplo de esto es cualquier herramienta que muestre datos en la consola. El 'texto' sencillo se verá bien y es útil. Los datos 'binarios' estropean su terminal y, en general, no son útiles para mirar. GNU grep al menos usa esta distinción para determinar si debería generar coincidencias con la consola.
Entonces, la pregunta es, ¿cómo se puede decir si un archivo es 'texto' o 'binario'? Y para restringir es más, ¿cómo se puede decir en un sistema de archivos como Linux? No conozco ningún metadato del sistema de archivos que indique el "tipo" de un archivo, por lo que la pregunta se vuelve aún más, al inspeccionar el contenido de un archivo, ¿cómo puedo saber si es 'texto' o 'binario'? Y para simplificar, permitamos que "texto" restrinja los caracteres que se pueden imprimir en la consola del usuario. Y en particular, ¿cómo implementaría esto? (Pensé que esto estaba implícito en este sitio, pero creo que es útil, en general, apuntar al código existente que hace esto, debería haberlo especificado), realmente no estoy buscando qué programas existentes puedo usar para hacer esta.
no dice qué es "nuestro software", ralentizando el análisis humano. – vwvan