В С#, в чем разница между \n
и \r\n
?
В С#, в чем разница между \n и \r\n?
Ответы (8)
\n
— Unix, \r
— Mac, \r\n
— Windows.
Иногда это создает проблемы, особенно при запуске кросс-платформенного кода. Вы можете обойти это, используя 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
Mac используют один файл '\r'
.
Взято с здесь
\r
со времен OSX — теперь они используют \n
. И \r\n
используется почти всеми существующими интернет-протоколами уровня приложений, которые когда-либо работали с точки зрения линий.
- person cHao; 28.12.2011
«\n» — это просто перевод строки (Unicode U+000A). Обычно это разделитель строк Unix.
«\r\n» — это возврат каретки (Unicode U+000D), за которым следует перевод строки (Unicode U+000A). Обычно это разделитель строк Windows.
\n
как полный разрыв строки, но это может быть не во всех версиях - и если вы просматриваете те же данные в виде файла в блокноте, вы не увидите разрыв строки.
- person Jon Skeet; 05.05.2013
\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) в качестве символа новой строки в ваших строках, а затем Microsoft создаст виртуальную машину для запуска приложений .NET в Unix, тогда возникнет проблема. Поэтому вам всегда следует использовать Environment.NewLine, когда вам нужен символ новой строки. Теперь вам не нужно заботиться об операционной системе.
В основном сводится к стандарту Windows: \r\n и системам на базе Unix, использующим: \n
http://en.wikipedia.org/wiki/Новаястрока
\n - это разрыв строки, используемый Unix-подобными системами, \r\n используется окнами. Это не имеет ничего общего с С#.
Это всего лишь \r\n and \n
варианты.
\r\n
используется в окнах
\n
используется в Mac и Linux
Речь идет о том, как операционная система распознает конец строки.
- Пользователь Windows\r\n
- Пользователь Mac\r
- Линукс использует \n
Мораль: если вы разрабатываете для Windows, придерживайтесь \r\n. Или, что еще лучше, используйте строковые функции C# для работы со строками, которые уже учитывают окончания строк (WriteLine и т. д.).