programing

주의사항 - \r\n 또는 \n\r?

stoneblock 2023. 6. 23. 21:41

주의사항 - \r\n 또는 \n\r?

저는 그것들이 기억할 수가 없어요.그렇다면, 구식 ASCII 라인을 적절하게 종료하는 올바른 방법은 무엇일까요?

나는 기억하기 위해 'return'이라는 단어를 사용할 것입니다, 그 단어는 그 전에 옵니다.

C#을 사용하는 경우 다음을 사용해야 합니다. MSDN에 따르면 다음과 같습니다.

유닉스가 아닌 플랫폼의 경우 "\r\n"을 포함하는 문자열이거나 유닉스 플랫폼의 경우 "\n"을 포함하는 문자열입니다.

새 라인은 OS에 따라 다릅니다.

DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13

자세한 내용은 여기에서 확인할 수 있습니다. https://ccrma.stanford.edu/ ~https/https/https/

의심스러운 경우 프리웨어 16진수 뷰어/편집기를 사용하여 파일이 새 줄을 인코딩하는 방법을 확인합니다.

저는 0D0A = \r\n = CR, LF = 캐리지 리턴, 라인 피드를 기억하는 데 도움을 줍니다.

시퀀스는 CR(캐리지 리턴) - LF(라인 피드)입니다.도트 매트릭스 프린터 기억나세요?맞아요.따라서 - 올바른 순서는 \r \n입니다.

.NET 언어로는Environment.NewLine더 좋을 것 같습니다.

\r\nWindows(윈도우)의 경우 문제가 없습니다.

이 작업은 수동으로 수행해야 합니다.
사실 저는 이것을 전혀 하지 말라고 충고하고 싶습니다.

실제로 우리는 플랫폼에 특화된 회선 종료 시퀀스 LTS에 대해 이야기하고 있습니다.

텍스트 모드(2진수가 아님)에서 파일을 열면 스트림이 "\n"을 플랫폼에 적합한 LTS로 변환합니다.그런 다음 파일을 읽을 때 LTS를 "\n"으로 다시 변환합니다.

결과적으로 "\r\n"을 Windows 파일에 인쇄하면 물리적 파일에서 "\r\r\n" 시퀀스가 나타납니다(16진수 편집기로 확인).

물론 플랫폼 간에 파일을 전송하는 것은 정말 어려운 일입니다.

네트워크 스트림에 쓰는 경우 수동으로 이 작업을 수행합니다(대부분의 네트워크 프로토콜에서 이 작업을 수행합니다).그러나 스트림이 어떠한 해석도 수행하지 않도록 할 것입니다(따라서 바이너리 모드가 적절했습니다).

Wikipedia에서 (해당 기사에서 OS에 맞는 항목을 읽을 수 있습니다):

ASCII 또는 호환되는 문자 집합을 기반으로 하는 시스템은 LF(Line Feed, '\n', 0x0A, 10진수) 또는 CR(Carriage return, '\r', 0x0D, 13진수)를 개별적으로 사용하거나 CR 다음에 LF(CR+LF, '\r\n', 0x0D0A)를 사용합니다.

\r\n

제가 사용했던 타자기와 반대라서 기억이 납니다.
그게 정상이라면 기억할 필요가 없었겠죠 :-)

typewriter from wikipedia 위키백과의 *이미지

타이프라이터에서 라인 디지팅을 완료하면 캐리지 리턴 레버를 사용하여 드럼을 롤링하고 새 라인을 만든 다음 캐리지 리턴을 수동으로 작동할 수 있습니다.

당신은 freesound.org 의 이 레코드에서 종이가 먹이를 주는 소리를 처음부터 끝에서 약 -1:03초 후, 굴러가는 드럼의 줄 소리 끝에 대한 벨 경고 후, 마차가 돌아오는 소리 에 들을 수 있습니다.

만약 당신이 C#을 사용하고 있다면, 왜 사용하지 않습니까?Environment.NewLine(일부 파일 작성기 개체를 사용하는 것으로 가정합니다...그냥 통과하세요.Environment.NewLine적절한 종결자를 처리할 수 있습니다.

한가지 더 방법은 두가지 모두를 기억하는 것입니다.0D 0A그리고.\r \n알파벳 또는 숫자 순서와 비교하여 역순 또는 반환 순서로 진행됩니다.

언급URL : https://stackoverflow.com/questions/6539801/reminder-r-n-or-n-r