10 ответов
\n
это Unix, \r
это Mac, \r\n
это винда.
Иногда это создает проблемы, особенно при работе с кроссплатформенным кодом. Вы можете обойти это с помощью Environment.NewLine
,
Пожалуйста, обратитесь к разделу В чем разница между \r, \n и \r\n?! для дополнительной информации. Приятного чтения
Различия
Есть несколько символов, которые могут указывать на новую строку. Обычные из них:
* '\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
Маки используют один '\r'
,
Взято отсюда
"\n" - это просто перевод строки (Unicode U+000A). Обычно это разделитель строк Unix.
"\ r \ n" - возврат каретки (Unicode U+000D), за которым следует перевод строки (Unicode U+000A). Обычно это разделитель строк Windows.
\n = LF (перевод строки) // Используется как символ новой строки в Unix
\ r = CR (возврат каретки) // Используется как символ новой строки в Mac
\ r \ n = CR + LF // Используется как символ новой строки в Windows
(char) 13 = \ r = CR
Environment.NewLine = любой из приведенного выше кода в зависимости от операционной системы
// .Net предоставляет класс Environment, который предоставляет множество данных на основе операционных систем, поэтому, если приложение построено в Windows, и вы используете CR + LF ("\n\r" вместо Environment.NewLine) в качестве символа новой строки в ваши строки, а затем MS создает виртуальную машину для запуска приложений.Net в Unix, тогда будут проблемы. Таким образом, вы всегда должны использовать Environment.NewLine, когда вам нужен символ новой строки. Теперь вам не нужно заботиться об операционной системе.
В основном сводится к стандарту Windows: \r\n и системам на основе Unix, использующим: \ n
Они просто \r\n and \n
варианты.
\r\n
используется в окнах
\n
используется в Mac и Linux
\n - разрыв строки, используемый в Unix(-подобных) системах, \r\n - в Windows. Это не имеет ничего общего с C#.
Речь идет о том, как операционная система распознает конец строки.
- Пользователь Windows \ r \ n
- пользователь Mac \ r
- Linux использует \ n
Мораль: если вы разрабатываете для Windows, придерживайтесь \ r \ n. Или, что еще лучше, используйте строковые функции C# для работы со строками, которые уже учитывают окончания строк (WriteLine и т. Д.).
- вставки U+000DВОЗВРАТ КАРЕТКИ
- вставляет U+000AПЕРЕВОД СТРОКИ
Вы можете вставить одно, другое или оба:
- вставкиU+000DU+000A
-
\n\r
вставкиU+000AU+000D
Если вы намерены указать «конец строки» , разные платформы и разные технологии, ожидайте, что вы вставите разные вещи:
- Windows: U+000DU+000A (т.е.)
- HTTP: U+000DU+000A (т.е.
\r\n
) - HTML: U+000A (т.е.)
- Unix: U+000A (т.е.
\n
) - Макинтош: U+000D (т.е.
\r
) - zOS: U+0085 (т.е.
\x85
)