Разрывы строк отправляются одинаково всеми (основными) браузерами / операционными системами?
Или клиенты Windows отправляют разрывы строк как \r\n, а * nix отправляет их как \n?
\r\n
\n
К сожалению, они различны для разных ОС.
По крайней мере, HTML пытается компенсировать это при предварительной обработке ввода HTML:
U + 000D ВОЗВРАТ КАРРИДЖА (CR) символови символы U + 000A LINE FEED (LF) обрабатываются специально.Любые символы CR, за которыми следуют символы LF, должны быть удалены, а любые символы CR, за которыми не следуют символы LF, должны быть преобразованы в символы LF.Таким образом, новые строки в HTML DOM представляются символами LF, и на входе в стадию токенизации никогда не бывает символов CR.
http://dev.w3.org/html5/spec/parsing.html#preprocessing-the-input-stream