Pergunta

Muitos idiomas têm funções que processam apenas "texto simples", não binário. Isso significa que apenas os caracteres dentro da linha ASCII serão permitidos?

O binário é apenas uma série de bytes, não é semelhante ao texto simples, que é apenas uma série de bytes interpretados como personagens? Então, a PlainText pode armazenar os mesmos formatos / protocolos de dados que o binário?

Foi útil?

Solução

Uma coisa que muitas vezes significa é que o idioma pode se sentir à vontade para interpretar caracteres de controle da Certian, como os valores 10 ou 13, como terminadores de linha lógica. Em outras palavras, uma operação de saída pode anexar automaticamente esses caracteres no final, e uma operação de entrada pode retirar -os da entrada (e/ou encerrar a leitura lá).

Por outro lado, as operações de E/S de idiomas que anunciam o trabalho em dados "binários" geralmente incluem um parâmetro de entrada para a duração dos dados para operar, pois não há outra maneira (com falta de ler o final do arquivo) para saber quando ele é feito.

Outras dicas

Um texto simples é legível por humanos, um arquivo binário geralmente é ilegível por um humano, pois é composto por caracteres imprimíveis e não impressos.

Tente abrir um arquivo JPEG com um editor de texto (por exemplo, bloco de notas ou vim) e você entenderá o que quero dizer.

Um arquivo binário geralmente é construído de uma maneira que otimiza a velocidade, pois não é necessária análise. Um arquivo de texto simples é editável manualmente, um arquivo binário não.

"PlainText" pode ter vários significados.

O mais útil nesse contexto é que ele é apenas arquivos binários organizados em sequências de bytes que um sistema de computadores específico pode se traduzir em um conjunto finito do que considera os caracteres "textos".

Um segundo significado, um pouco conectado, é uma restrição que o sistema deve exibir esses "caracteres de texto" como símbolos legíveis por um humano como membros de um alfabeto reconhecível. Freqüentemente, a implicação não escrita é que o mecanismo de tradução é ASCII.

Um terceiro significado ainda mais restritivo é que esse sistema deve ser um editor/visualizador de texto "simples". Geralmente implicando a codificação ASCII. Mas, na verdade, há muito pouca diferença entre você, o texto humano, lendo o texto codificado em algum formato descolado e exibido por um programa proprietário, vs. VI Editor de texto lendo o arquivo codificado ASCII.

No contexto de programação, seu ambiente de programação (compreendido pelo sistema OS + System APIs + seus recursos de idioma) define um conjunto de caracteres de "texto" e um conjunto de codificações que é capaz de ler para converter para esses caracteres "texto". Observe que isso pode não implicar necessariamente ASCII, Inglês ou 8 bits - como exemplo, o Perl pode ler e usar de forma nativa o conjunto completo de "caracteres".

Para responder à sua pergunta específica, você pode definitivamente usar seqüências de caracteres para transmitir sequências de bytes arbitrárias, com a advertência que as convenções de terminação de string devem aplicar. O problema é que as funções que já existem para "processar dados de caracteres" provavelmente não teriam nenhuma funcionalidade útil para lidar com seus dados binários.

Geralmente, depende da linguagem/ambiente/funcionalidade.

Dados binários são sempre isso: binário. É transferido sem modificação.

O modo de "texto simples" pode significar uma ou mais das seguintes coisas:

  • O fluxo de bytes é dividido em linhas. Os delimitadores de linha são r, n ou r n ou n r. Às vezes, é dependente de OS (como *nix gosta de n, enquanto o Windows gosta de r n). O final da linha pode ser ajustado para o aplicativo de leitura
  • A codificação de caracteres pode ser ajustada. O ambiente pode detectar e/ou converter a fonte que codifica na codificação do aplicativo espera
  • Provavelmente, algumas outras conversões devem ser adicionadas a esta lista, mas não consigo pensar mais neste momento

Tecnicamente nada. O texto simples é uma forma de dados binários. No entanto, uma grande diferença é como os valores são armazenados. Pense em como um número inteiro pode ser armazenado. Nos dados binários, usaria o formato de complemento de dois dois, provavelmente ocupando 32 bits de espaço. No formato de texto, um número seria armazenado como uma série de dígitos Unicode. Portanto, o número 50 seria armazenado como 0x32 (acolchoado para ocupar 32 bits) em binário, mas seria armazenado como '5' '0' em texto simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top