Os arquivos de texto armazenam seu método de codificação para posterior decodificação?

19
  1. Eu queria saber se alguns arquivos de texto armazenar seu método de codificação ao longo seu conteúdo de texto para mais tarde decodificação?
  2. Ou é o trabalho do visualizador de texto acho que o método de codificação para um dado arquivo de texto, e a adivinhação pode nem sempre estar correto? Se sim, Como um visualizador de texto adivinha isso?
por Tim 09.07.2011 / 16:44

2 respostas

18

I was wondering if some text files store their encoding method along their text content for later decoding?

A resposta de Mark Szymanski está correta - não há informações explícitas de codificação em um arquivo de texto simples - essa é a definição de "arquivo de texto simples", o "simples" refere-se ao fato de não haver meta-dados no arquivo.

No entanto, alguns aplicativos colocarão uma marca de ordem de byte (BOM) em arquivos de texto codificados como UTF-16 ou UTF-32 / UCS-4. A lista de materiais não tem como objetivo indicar a codificação (indica a ordem dos bytes, como o nome diz), mas muitos aplicativos usarão a presença da BOM para reconhecer UTF-16 / UTF-32 e servirão como indicador de codificação.

Or is it the text viewer's job to guess the encoding method for a given text file, and the guessing may not always be correct? If yes, how does a text viewer guess that?

Sim, o visualizador de texto só pode adivinhar. Geralmente usa algumas heurísticas:

  • Em algumas codificações (principalmente em UTF-8) nem todas as seqüências de bytes são válidas. Portanto, um aplicativo pode tentar decodificar o arquivo como UTF-8. Se tiver êxito, o arquivo provavelmente será UTF-8; se falhar encontrando uma seqüência inválida de bytes, não é. É assim, por exemplo vim funciona por padrão: Primeiro, ele tentará usar o UTF-8 ao ler um arquivo; se isso falhar, ele volta para ISO-8859-1.
  • Na maioria das codificações de 8 bits mais antigas, qualquer sequência de bytes é válida. Nesse caso, você pode, algumas vezes, adivinhar a codificação observando o histograma de bytes (frequência de diferentes seqüências de bytes / bytes). O Internet Explorer costumava fazer isso para "adivinhar" a codificação de uma página. No entanto, isso é muito propenso a erros, portanto, poucos programas fazem isso.

Na maioria dos casos, um programa deve ser explicitamente informado sobre a codificação de um arquivo de texto, caso contrário, ele não poderá lê-lo corretamente.

    
por 09.07.2011 / 18:11
4

Arquivos de texto simples não armazenam informações sobre sua codificação. Um espectador o determina com base na codificação de caracteres que você definiu para ele. Não pode determinar por si só, já que é tudo igual ao computador.

    
por 09.07.2011 / 16:59