В чем разница между \ n и \ r \ n в C #? - PullRequest
31 голосов

Ответы [ 8 ]

40 голосов
/ 21 октября 2010

\n - это Unix, \r - это Mac, \r\n - это Windows.

Иногда это создает проблемы, особенно при работе с кроссплатформенным кодом.Вы можете обойти это, используя Environment.NewLine.

Пожалуйста, обратитесь к В чем разница между \ r, \ n и \ r \ n?! для получения дополнительной информации.Приятного чтения

33 голосов
/ 21 октября 2010

Разница

Есть несколько символов, которые могут указывать на новую строку.Обычные из них следующие:

* '\n' or '0x0A' (10 in decimal) -> This character is called "Line Feed" (LF).
* '\r' or '0x0D' (13 in decimal) -> This one is called "Carriage return" (CR).

Различные операционные системы обрабатывают переводы строк по-разному.Вот краткий список наиболее распространенных:

* DOS and Windows

Они ожидают, что символ новой строки будет комбинацией двух символов, а именно '\ r \ n' (или 13, за которыми следует 10).

* Unix (and hence Linux as well)

Unix использует один '\ n' для обозначения новой строки.

* Mac

Mac используют один '\r'.

Взято из Здесь

10 голосов
/ 21 октября 2010

"\ n" - это просто перевод строки (Unicode U + 000A). Обычно это разделитель строк Unix.

"\ r \ n" - возврат каретки (Unicode U + 000D), за которым следует перевод строки (Unicode U + 000A). Обычно это разделитель строк Windows.

2 голосов
/ 21 октября 2010

В основном сводится к стандарту Windows: \ r \ n и системам на основе Unix с использованием: \ n

http://en.wikipedia.org/wiki/Newline

0 голосов
/ 25 июня 2013

\ n = LF (перевод строки) // Используется как символ новой строки в Unix

\ r = CR (возврат каретки) // Используется как символ новой строки на Mac

\ r \ n = CR + LF // Используется как символ новой строки в Windows

(символ) 13 = \ r = CR

Environment.NewLine = любой из приведенных выше кодов в зависимости от операционной системы

// .NET предоставляет класс Environment, который предоставляет множество данных на основе операционных систем, поэтому, если приложение построено на Windows, и вы используете CR + LF ("\ n \ r" вместо Environment.NewLine) в качестве символ новой строки в ваших строках, а затем Microsoft создает виртуальную машину для запуска приложений .NET в Unix, тогда возникнет проблема. Таким образом, вы всегда должны использовать Environment.NewLine, когда вам нужен символ новой строки. Теперь вам не нужно заботиться об операционной системе.

0 голосов
/ 21 октября 2010

Это просто \r\n and \n варианты.

\r\n используется в Windows

\n используется в Mac и Linux

0 голосов
/ 21 октября 2010

\ n - это разрыв строки, используемый в Unix (-подобных) системах, \ r \ n - в Windows.Это не имеет ничего общего с C #.

0 голосов
/ 21 октября 2010

О том, как операционная система распознает конец строки.

  • Пользователь Windows \ r \ n
  • Пользователь Mac \ r
  • Linux использует \ n

Мораль: если вы разрабатываете для Windows, придерживайтесь \ r \ n. Или, что еще лучше, используйте строковые функции C # для работы со строками, которые уже учитывают окончания строк (WriteLine и т. Д.).

...