'^ M' no final de cada linha de arquivos de texto gerados no Windows

8

Fiquei me perguntando por que, se você abrir um arquivo de texto feito no bloco de notas do Windows no UNIX, verá que ele tem ^M , onde deveria haver uma nova linha?

Meu entendimento é que, no Windows, cada linha é finalizada com \r\n , ou seja, 0x0D0A em ASCII, enquanto ^M tem valor ASCII 0x5E4D . Eu não posso relacionar esses dois de um para o outro.

    
por Tim 30.07.2011 / 02:53

1 resposta

18

Você está certo sobre o fim da linha sendo importante; Ambos os sistemas operacionais esperam que a linha termine com "\ n", mas o Windows também adiciona um "\ r" antes que o unix não espera, então os programas unix irão gerar o "\ r" de sua própria maneira.

O arquivo não termina com os dois caracteres "^" e "M", que é apenas uma maneira comum de representar caracteres não imprimíveis. Programas produzirão "^" e uma letra correspondente ao valor do byte, começando com A para 1. M é a 13ª letra e '\ r' é o código ASCII 13 (ou 0xD, como você disse), então você verá "^ M "

    
por 30.07.2011 / 03:17