2008-11-02 7 views
8

In JavaScript war dies ein Cross-Browser-Kompatibilitätsproblem, also wurden beide verwendet, aber es gibt zahlreiche Instanzen in verschiedenen Sprachen, in denen ich beide zusammen als \ r \ n ausgedruckt sehe. Ist das immer noch die allgemein anerkannte Norm, dass man immer nur beides benutzen sollte, oder gibt es jemals eine Zeit, in der Sprachen beide verstehen und man am Ende eine Pause und eine Rückkehr hat?Sollen Wagenrücklauf und neue Zeile n immer zusammen verwendet werden? r n

Antwort

8

Das CRLF-Paar ist der erwartete End-of-Line-Marker (EOL) der meisten Internetprotokolle.

Hier sollte das "Robustheitsprinzip" von Postel gelten. Seien Sie liberal in dem, was Sie akzeptieren, aber streng in dem, was Sie senden. Seien Sie also darauf vorbereitet, nur ein LF zu empfangen, aber wenn Sie Daten senden, verwenden Sie, was auch immer die relevanten Standards erfordern.

+0

Robustheitsprinzip ist die Ursache für HTML-Suppe. Verdammt das Prinzip! :-) –

+0

sollte man auch nur CR akzeptieren, weil einige ältere Systeme nur CR verwenden. –

+0

Nein, Sie sollten ziemlich streng sein in was Sie akzeptieren und sehr streng in was Sie emittieren. Dies reduziert unerwartete Fehler, bei denen etwas versucht zu erraten, was eine mögliche Mehrdeutigkeit bedeutet, anstatt es einfach abzulehnen. – staticsan

2

Dies ist kein Sprachkompatibilitätsproblem, sondern entweder ein Dateiproblem oder ein Protokollproblem. Dateiweise: Unix verwendet \ n als Wagenrücklauf, Windows benutzt \ r \ n und ich denke, MacOS benutzt (nicht sicher jetzt) ​​\ r. Viele "plattformübergreifende" Sprachen abstrahieren dies in einer plattformabhängigen Variablen. Protokollweise: Was das Protokoll spezifiziert.

+0

Das aktuelle Macintosh-Betriebssystem (OS X) ist Unix und verwendet Zeilenumbruch ('\ n') als Zeilentrennzeichen. CP-M/MS-DOS/Windows verwenden, weil frühe Zeichenmodus-Drucker ein Steuerzeichen benötigen, um den Druckkopf zum linken Rand (\ r) zu bewegen, und eins, um das Papier um eine Zeile weiterzuleiten (\ n). –

Verwandte Themen