Я просто не могу вспомнить их. Итак, что является правильным способом правильно завершить старомодные линии ASCII?
Я просто не могу вспомнить их. Итак, что является правильным способом правильно завершить старомодные линии ASCII?
Ответы:
Я бы использовал слово ' r etur n ', чтобы запомнить, r стоит перед n.
\n\r
и \r\n
такой же, не они же эффект? ты можешь сказать разницу?
Если вы используете C #, вы должны использовать Environment.NewLine
, что в соответствии с MSDN это:
Строка, содержащая «\ r \ n» для не-Unix-платформ, или строка, содержащая «\ n» для Unix-платформ.
Environment.NewLine
это нормально. Однако, если вы пишете вещи в четко определенном формате, формат может также определять и новую строку. Например, протокол HTTP указывает, что вы должны использовать \r\n
в качестве ограничителя строки для заголовков и т. Д., Независимо от платформы.
Новая строка зависит от вашей ОС:
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/~craig/utility/flip/
В случае сомнений используйте любое бесплатное шестнадцатеричное средство просмотра / редактирования, чтобы увидеть, как файл кодирует новую строку.
Для меня, я использую следующее руководство , чтобы помочь мне вспомнить: 0D0A = \ г \ п = CR, LF = ча Rr МАГП г eturn, ли п е корма
0D0A
наизусть, но все же смущает \r
и \n
.
Последовательность: CR (возврат каретки) - LF (перевод строки). Помните матричные принтеры? Точно. Итак, правильный порядок \ r \ n
В любом .NET языке, Environment.NewLine
было бы предпочтительнее.
Будьте осторожны с этим вручную.
На самом деле я бы посоветовал не делать этого вообще.
В действительности мы говорим о последовательности завершения строки LTS, которая специфична для платформы.
Если вы откроете файл в текстовом режиме (т.е. не в двоичном), то потоки преобразуют «\ n» в правильный LTS для вашей платформы. Затем преобразуйте LTS обратно в "\ n", когда вы читаете файл.
В результате, если вы напечатаете «\ r \ n» в файл Windows, вы получите последовательность «\ r \ r \ n» в физическом файле (посмотрите в шестнадцатеричном редакторе).
Конечно, это настоящая боль, когда речь идет о передаче файлов между платформами.
Теперь, если вы пишете в сетевой поток, я бы сделал это вручную (так как большинство сетевых протоколов вызывают это). Но я хотел бы убедиться, что поток не делает никакой интерпретации (поэтому двоичный режим был уместен).
\r\n
для Windows подойдет просто отлично.
\n
прекрасно работает и на Windows, включая последнюю версию Notepad.
Из Википедии (вы можете прочитать, что является правильным для вашей ОС в этой статье):
Системы, основанные на ASCII или совместимом наборе символов, используют либо LF (перевод строки, '\ n', 0x0A, 10 в десятичном формате) или CR (возврат каретки, '\ r', 0x0D, 13 в десятичном формате) по отдельности, либо CR, за которым следует CR LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
Странно сказать, я помню это, потому что это противоположность пишущей машинке, которую я использовал.
Ну, если бы это было нормально, мне не нужно было это помнить ...:-)
В пишущей машинке, когда вы заканчиваете оцифровку строки, вы используете рычаг возврата каретки , который до того, как заставляет катиться барабан, перевод строки и после, позволяют вам вручную управлять возвратом каретки .
Вы можете прослушивать из этой записи на freesound.org звук подачи бумаги в начале и примерно через -1: 03 секунды после конца, после звукового сигнала об окончании звука линии барабана, который катится, и после возврат каретки.