Windows Wagenrücklauf wird \r\n
unter \n
Unix \r\n
als zwei Zeichen behandelt?
Windows Wagenrücklauf wird \r\n
unter \n
Unix \r\n
als zwei Zeichen behandelt?
Antworten:
Dies sind zwei Zeichen:
\r
ist Wagenrücklauf;\n
ist Zeilenvorschub.Zwei Zeichen zusammen repräsentieren eine neue Zeile unter Windows. Während unter Linux \n
neue Linie darstellt. Der Cursor bewegt sich unter Linux an den Anfang einer neuen Zeile. Unter Windows bleibt der Cursor in derselben Spalte in der Konsole, jedoch in der nächsten Zeile.
\r
Unter Linux hat dies den gleichen Effekt wie unter Windows: Bewegt den Cursor an den Zeilenanfang. Es ist möglich, verschiedene Informationen in derselben Zeile zu drucken, in \r
der anstelle von verwendet wird \n
.
Eigentlich \r is 0x0D (^M) and \n is 0x0A (^J)
aber ..... unter Windows:
\n will write 0x0D 0x0A
unter Unix:
\r will write 0x0D
\n will write 0x0A
stdout
als Binärdatenstrom anstelle eines Textstroms würde dazu führen \n
, dass die Sohle 0x0A
nicht unter 0x0D 0x0A
Windows geschrieben wird. Siehe die Antwort von @FredFoo.
Kommt auf die Einstellung an. \r\n
ist zwei Bytes breit (in ASCII, UTF-8 usw.), aber E / A-Bibliotheken wie die C- stdio
Bibliothek und andere können im Textmodus zwischen \n
und \r\n
quasi transparent übersetzen.
Dh auf einer Windows-Plattform ein C-Programm, das einen Textmodus-Stream txt_in
mit liest
while ((c = getc(txt_in)) != EOF)
printf("%02x\n", c);
meldet den ASCII-Code für nicht \r
. Umgekehrt putc('\n', txt_out)
wird tatsächlich \r\n
in den Textmodus-Stream geschrieben txt_out
.
Ja, es sind zwei Zeichen: Wagenrücklauf '\ r' gefolgt von Zeilenvorschub '\ n'.
Ich führte einige Tests (nichts Besonderes) mit Notepad ++ und Sublime Text 2 auf Windows, und es stellt sich heraus , dass \r
und \n
in der Tat zwei unterschiedliche Charaktere sind, aber ...
Verschiedene Texteditoren werden möglicherweise eingefügt oder nicht, \r
wenn die Eingabetaste gedrückt wird.
Versuchen Sie Folgendes in Ihrem Texteditor:
1
2
3
4
5
Drücken Sie dann Strg + F , aktivieren Sie reguläre Ausdrücke und suchen Sie nach \r
. Abhängig von Ihrem Texteditor und seinen Einstellungen können Sie am Ende jeder Zeile ein Zeichen "treffen" oder "nicht treffen". Wenn der obige Text aus einem anderen Editor kopiert wird, kann sich auch das Verhalten unterscheiden ...
Einige Texteditoren ermöglichen Anpassungen in ihren Einstellungen, in dem Sie festlegen können , wenn Sie es vorziehen , \r\n
oder Unix-Stil \n
eingeführt werden , wenn Sie die Taste Return . Darüber hinaus können Sie möglicherweise festlegen , dass ein konsistenter Stil erzwungen werden soll, indem Sie das \r
Zeichen entfernen oder einfügen , bevor Sie eine Datei speichern.