Binário e texto não são separados: são simplesmente dados . Depende da interpretação que os torna um ou outro. Se você abrir dados binários (como um arquivo de imagem) em um editor de texto, muito disso não fará sentido, porque não se encaixa na sua interpretação escolhida (como texto).
O que você chama de texto é um subconjunto do possível conteúdo do arquivo: Dados que em um dado conjunto de caracteres se traduz em caracteres legíveis.
Por exemplo, em ASCII , você pode ver que, de 128 valores "permitidos", apenas cerca de metade são letras e números, 30 são pontuação e o resto são caracteres de controle . O último grupo simplesmente não é muito usado em arquivos de texto, e eles não têm uma boa representação textual. Alguns deles são Tab e Newline , onde os editores de texto já precisam ser criativos para exibi-los.
Alguns editores de texto têm opções para exibir explicitamente o espaço em branco. Então, eles serão desenhados como caracteres, além do comportamento regular de formatação (que também é apenas a interpretação desses caracteres).
O Pure ASCII apenas interpreta 128 valores. Os bytes usados para armazenar essas informações têm 256 valores possíveis cada, então metade dos valores possíveis não são permitidos em ASCII. Essas são, e. usado em conjuntos de caracteres específicos da região, como o Latin 1, mas em ASCII, eles são indefinidos. Eles não têm representação útil em um visualizador de texto que só pode manipular ASCII.
Dados binários geralmente não são interpretados como texto. Então, nesses arquivos, todos os valores possíveis de byte são comumente encontrados. Tudo o mais seria um desperdício (e essa é uma razão pela qual você pode compactar o texto muito bem). Os formatos de arquivo de imagem são complicados e você normalmente não os visualiza como texto, portanto, eles não precisam ser legíveis.
Como não há uma interpretação de dados comum (conjunto de caracteres) que mapeie todos os valores possíveis para caracteres legíveis, e como isso não faria sentido de qualquer maneira (como não é texto legível), as partes principais são exibidas como rabiscos. / p>Um editor hexadecimal escolhe uma representação diferente para os dados: exibe cada byte como dois dígitos hexadecimal . É apenas uma representação diferente e outra com um conjunto de caracteres facilmente legível: todos os 256 valores possíveis de byte podem ser representados como dois dígitos hexadecimais.
Como há um mapeamento fácil de dados binários para hexadecimais e vice-versa (4 dígitos binários de / para um dígito hexadecimal) e binário contém muito pouca informação por dígito, o hexadecimal é geralmente o modo preferido para humanos ler binários, a menos que há razões específicas para preferir uma representação diferente.
Alguns editores de texto podem ter um modo editor hexadecimal e alguma heurística que tentou determinar se um arquivo é texto ou binário e seleciona automaticamente um modo ou outro. Mas isso pode ser difícil de acertar e não é uma propriedade específica do arquivo que diz se é um tipo ou outro.
Alguns clientes FTP pedem que você especifique quais terminações de arquivo são usadas para dados de texto . Esses programas alterarão o conteúdo do arquivo para corresponder ao sistema operacional da máquina à qual você está conectado, pois o Windows usa uma sequência de caracteres de finalização de linha diferente ( CR/LF
) que Linux e Unix (incluindo Mac OS X; LF
).