Los datos binarios y de texto no están separados: son simplemente datos . Depende de la interpretación que los haga uno u otro. Si abre datos binarios (como un archivo de imagen) en un editor de texto, gran parte no tendrá sentido, ya que no se ajusta a la interpretación elegida (como texto).
Lo que llama texto es un subconjunto de los posibles contenidos del archivo: datos que en un conjunto de caracteres dado se traducen en caracteres legibles.
Por ejemplo, en ASCII , puede ver que, de 128 valores "permitidos", solo aproximadamente la mitad son letras y números, 30 son signos de puntuación y el resto son caracteres de control . El último grupo simplemente no se usa mucho en archivos de texto, y no tienen una representación textual realmente buena. Algunos de ellos son caracteres Tab y Newline , donde los editores de texto ya necesitan ser creativos para mostrarlos.
Algunos editores de texto tienen opciones para mostrar explícitamente espacios en blanco. Luego se dibujarán como caracteres, además de su comportamiento de formateo habitual (que también es solo la interpretación de estos caracteres).
ASCII puro solo interpreta 128 valores. Los bytes utilizados para almacenar esta información tienen 256 valores posibles cada uno, por lo que la mitad de los valores posibles no están permitidos en ASCII. Esos se usan, por ejemplo, en conjuntos de caracteres específicos de la región, como Latin 1, pero en ASCII, no están definidos. No tienen una representación útil en un visor de texto que solo pueda manejar ASCII.
Los datos binarios generalmente no se interpretan como texto. Entonces, en estos archivos, todos los valores de bytes posibles se encuentran comúnmente. Todo lo demás sería un desperdicio (y esa es una razón por la que puedes comprimir texto muy bien). Los formatos de archivo de imagen son complicados y, por lo general, no los ve como texto, por lo que no es necesario que sean legibles.
Como no existe una interpretación de datos común (juego de caracteres) que asigne todos los valores posibles a caracteres legibles, y dado que eso no tendría mucho sentido de todos modos (ya que no es texto legible), las partes principales se muestran como galimatías.
Un editor hexadecimal elige una representación diferente para los datos: muestra cada byte como dos dígitos hexadecimales . Es solo una representación diferente, y una con un conjunto de caracteres fácilmente legible para los humanos: los 256 valores de bytes posibles se pueden representar como dos dígitos hexadecimales.
Dado que hay un mapeo fácil de datos binarios a hexadecimal y viceversa (4 dígitos binarios a / de un dígito hexadecimal), y el binario contiene muy poca información por dígito, el hexadecimal es generalmente la forma preferida para que los humanos lean el binario, a menos que existan razones para preferir una representación diferente.
Algunos editores de texto podrían tener un modo de editor hexadecimal y algunos heurísticos que intentaron determinar si un archivo es de texto o binario, y seleccionar automáticamente un modo u otro. Pero esto puede ser difícil de corregir y no es una propiedad específica del archivo que dice si es de un tipo u otro.
Algunos clientes FTP le piden que especifique qué terminaciones de archivo se usan para datos de texto . Estos programas luego cambiarán el contenido del archivo para que coincida con el sistema operativo de la máquina a la que está conectado, ya que Windows usa una secuencia de caracteres de final de línea ( CR/LF
) diferente a Linux y Unix (incluido Mac OS X; LF
).