[line-breaks] CR LF, LF 및 CR 줄 바꿈 유형의 차이점은 무엇입니까?

CR LF (Windows), LF (Unix) 및 CR (Macintosh) 줄 바꿈 유형의 차이점 (가능한 경우 예제 포함)을 알고 싶습니다.



답변

실제로 파일에 어떤 바이트가 저장되어 있는지입니다. CR타자기부터 캐리지 리턴 및 LF줄 바꿈에 대한 바이트 코드입니다 . 행 끝 마커로 배치 된 바이트 만 참조합니다.

항상 wikipedia 에 대한 추가 정보 .


답변

CR 및 LF는 각각 제어 된 문자 0x0D이며 0x0A(10 진수 13) 10 진수입니다.

텍스트 파일에서 줄 바꿈을 표시하는 데 사용됩니다. 표시된 것처럼 Windows는 CR LF 시퀀스의 두 문자를 사용합니다. 유닉스는 LF 만 사용하고 이전 MacOS (OSX 이전 MacIntosh)는 CR을 사용했습니다.

묵시적인 역사적 관점 :

Peter , CR = Carriage Return 및 LF = Line Feed 에서 알 수 있듯이 두 식은 이전 타자기 / TTY에 근본이 있습니다. LF는 용지를 위로 옮기고 (수평 위치는 동일하게 유지) CR은 “캐리지”를 다시 가져 와서 입력 된 다음 문자가 용지의 가장 왼쪽 위치 (같은 줄에 있음)가되도록합니다. CR + LF는 두 줄 모두를 수행했습니다. 즉, 새 줄을 입력 할 준비를했습니다. 시간이 지남에 따라 코드의 물리적 의미가 적용되지 않았고 메모리 및 플로피 디스크 공간이 부족 해짐에 따라 일부 OS 디자이너는 문자 중 하나만 사용하기로 결정했지만 서로 아주 잘 통신하지 못했습니다. -)

대부분의 최신 텍스트 편집기 및 텍스트 중심 응용 프로그램은 파일의 줄 끝 규칙을 자동으로 감지하고 그에 따라 표시 할 수있는 옵션 / 설정 등을 제공합니다.


답변

이것은 내가 찾은 좋은 요약입니다.

캐리지 리턴 (CR) 문자 ( 0x0D, \r)는 다음 행으로 이동하지 않고 커서를 행의 시작 부분으로 이동합니다. 이 문자는 Commodore 및 Early Macintosh 운영 체제 (OS-9 이하)에서 줄 바꿈 문자로 사용됩니다.

줄 바꿈 (LF) 문자 ( 0x0A, \n)는 줄의 시작 부분으로 돌아 가지 않고 커서를 다음 줄로 이동합니다. 이 문자는 UNIX 기반 시스템 (Linux, Mac OSX 등)에서 줄 바꾸기 문자로 사용됩니다.

EOL (End of Line) 시퀀스 ( 0x0D 0x0A, \r\n)는 실제로 두 개의 ASCII 문자이며 CR과 LF 문자의 조합입니다. 커서를 다음 줄과 그 줄의 시작 부분으로 이동시킵니다. 이 문자는 Microsoft Windows, Symbian OS 및 기타를 포함한 대부분의 다른 Unix 이외의 운영 체제에서 줄 바꾸기 문자로 사용됩니다.

출처


답변

이것을 간단히 언급하는 대답이 없으므로 간결하게 요약하면 다음과 같습니다.

캐리지 리턴 (MAC pre-OSX)

  • CR
  • \아르 자형
  • ASCII 코드 13

줄 바꿈 (Linux, MAC OSX)

  • LF
  • \엔
  • ASCII 코드 10

캐리지 리턴 및 줄 바꿈 (Windows)

  • CRLF
  • \ r \ n
  • ASCII 코드 13 및 ASCII 코드 10

ASCII 코드가 이상한 형식으로 보이면 다른 기수 /베이스의 숫자 13과 10, 일반적으로 기수 8 (8 진수) 또는 기수 16 (16 진수)입니다.

http://www.bluesock.org/~willg/dev/ascii.html


답변

Jeff Atwood는 이에 관한 최근 블로그 게시물을 보유하고 있습니다 : The Great Newline Schism

Wikipedia 의 본질은 다음과 같습니다 .

CR + LF 시퀀스는 텔레타이프 머신 (일반적으로 ASR33)을 콘솔 장치로 채택한 많은 초기 컴퓨터 시스템에서 공통적으로 사용되었습니다.이 시퀀스는 프린터를 새 라인의 시작 부분에 배치하기 위해 필요했기 때문입니다. 이러한 시스템에서 응용 프로그램에서 이러한 하드웨어 세부 정보를 숨기는 장치 드라이버의 개념이 아직 제대로 개발되지 않았기 때문에 텍스트는 종종 이러한 프린터와 호환되도록 일상적으로 구성되었습니다. 애플리케이션은 텔레타이프 머신과 직접 대화하고 그 규칙을 따라야했습니다.두 기능의 분리는 프린트 헤드가 한 문자 시간에 맨 오른쪽에서 다음 줄의 시작 부분으로 돌아갈 수 없다는 사실을 숨겼습니다. 이것이 시퀀스가 ​​항상 CR과 함께 먼저 전송되는 이유입니다. 실제로 프린트 헤드가 왼쪽 여백으로 이동할 시간을주기 위해 추가 문자 (무시한 CR 또는 NUL은 무시)를 보내야하는 경우가 종종있었습니다. 텔레타이프가 보오율이 높은 컴퓨터 터미널로 교체 된 후에도 많은 운영 체제는 이러한 문자를 자동으로 전송하는 기능을 지원하므로 디스플레이를 스크롤하기 위해 여러 문자 시간이 필요한 저렴한 터미널과 호환됩니다.


답변

CR-ASCII 코드 13

LF-ASCII 코드 10.

이론적으로 CR은 커서를 첫 번째 위치 (왼쪽)로 되돌립니다. LF는 커서를 한 줄 아래로 이동하여 한 줄을 공급합니다. 예전에는 프린터와 텍스트 모드 모니터를 제어했던 방식입니다. 이 문자는 일반적으로 텍스트 파일에서 줄 끝을 표시하는 데 사용됩니다. 다른 운영 체제는 다른 규칙을 사용했습니다. 지적했듯이 Windows는 CR / LF 조합을 사용하지만 OSX 이전 Mac에서는 CR 만 사용합니다.


답변

ASCII 또는 호환 문자 세트를 기반으로하는 시스템은 LF (줄 바꿈, 0x0A, 10 진수 10) 또는 CR (캐리지 리턴, 0x0D, 10 진수 13)을 개별적으로 사용하거나 CR 다음에 LF (CR + LF, 0x0D 0x0A)를 사용합니다. 이러한 문자는 프린터 명령을 기반으로합니다. 줄 바꿈은 한 줄의 용지가 프린터에서 공급되어야하고 캐리지 리턴은 프린터 캐리지가 현재 줄의 시작 부분으로 돌아 가야한다는 것을 나타냅니다.

자세한 내용 은 다음과 같습니다 .