Повернення каретки Windows, \r\n
поки воно знаходиться \n
в Unix, \r\n
розглядається як два символи?
Відповіді:
Це два символи:
\r
є повернення каретки;\n
- це лінійна подача.Два символи в поєднанні представляють новий рядок у Windows. Тоді як на Linux, \n
представляє новий рядок. Він переміщує курсор на початок нового рядка в Linux. У Windows курсор залишатиметься в тому ж стовпці на консолі, але в наступному рядку.
\r
на Linux має такий самий ефект, як на Windows: переміщує курсор на початок рядка. Можна надрукувати різну інформацію на одному рядку, де \r
використовується замість \n
.
Насправді \r is 0x0D (^M) and \n is 0x0A (^J)
, але ..... на вікнах:
\n will write 0x0D 0x0A
на unix:
\r will write 0x0D
\n will write 0x0A
stdout
з бінарним потоком, а не як текстовий потік, призведе до \n
написання єдиного тексту, 0x0A
а не 0x0D 0x0A
в Windows. Див. Відповідь @FredFoo.
Залежить від обстановки. \r\n
має два байти в ширину (в ASCII, UTF-8 тощо), але бібліотеки вводу-виводу, такі як stdio
бібліотека C та інші, при роботі в текстовому режимі можуть перекладати між \n
і \r\n
квазіпрозоро.
Тобто, на платформі Windows програма C, що читає потік текстового режиму за txt_in
допомогою
while ((c = getc(txt_in)) != EOF)
printf("%02x\n", c);
не повідомлятиме код ASCII для \r
. І навпаки, putc('\n', txt_out)
фактично буде писати \r\n
в текстовому режимі txt_out
.
Так, це два символи: повернення каретки '\ r' з подальшим подаванням рядка '\ n'.
Я провів кілька тестів (нічого фантазії) з Notepad ++ і Sublime Text 2 на Windows, і виявляється, що \r
і \n
справді 2 різних символів, але ...
Різні текстові редактори можуть вставляти або не вставляти, \r
коли натискається клавіша повернення .
Спробуйте наступне у своєму текстовому редакторі:
1
2
3
4
5
Потім натисніть Ctrl + F , увімкніть регулярні вирази та виконайте пошук \r
. Залежно від вашого текстового редактора та його налаштувань, ви можете "вдарити" або "не вдарити" символ у кінці кожного рядка. Якщо наведений текст скопійовано з іншого редактора, поведінка також може відрізнятися ...
Деякі текстові редактори дозволяють налаштовувати у своїх налаштуваннях, де ви можете вказати, чи віддаватимете перевагу \r\n
стилю Unix, \n
коли ви натискаєте клавішу Return . Крім того, вони можуть дозволити вам застосувати послідовний стиль, зачистивши або вставивши \r
символ перед збереженням файлу.