Hallo Felix,
Der Zeilenumbruch einer <textarea> ist mit 0x0D 0x0A kodiert. Das ist also nicht nur ein \n sondern \r\n (2 Bytes, CRLF).
das ist bei Windows so. Auf anderen Systemen nicht unbedingt. Das solltest Du unbedingt dazu sagen, sonst erzählst Du nur die halbe Wahrheit.
Nene. Da hat Rolf schon recht. Newlines in Textareas sind definiert als CR LF. Siehe auch den Standard:
The element's value is defined to be the element's raw value with the following transformation applied:
- Replace every occurrence of a U+000D CARRIAGE RETURN (CR) character not followed by a U+000A LINE FEED (LF) character, and every occurrence of a U+000A LINE FEED (LF) character not proceeded by a U+000D CARRIAGE RETURN (CR) character, by a two-character string consisting of a U+000D CARRIAGE RETURN - U+000A LINE FEED (CRLF) character pair.
- If the element's wrap attribute is in the Hard state, insert U+000D CARRIAGE RETURN - U+000A LINE FEED (CRLF) character pairs into the string using a UA-defined algorithm so that each line so that each line has no more than character width characters. The purposes of this requirement, lines are delimited by the start of the string, the end of the string, and U+000D CARRIAGE RETURN - U+000A LINE FEED (CRLF) character pairs.
Schwierig wird es erst, wenn man das mit JS bearbeitet. Da gibt es dann wieder Plattform-Unterschiede… /\n/
matcht in JS nicht immer auf den gleichen String, abhängig von Browser und OS, weshalb man dann doch wieder auf /\r\n|\r|\n/
zurückgreifen muss.
Freundliche Grüße,
Christian Kruse