Символы переноса строки в Windows занимают разное количество байтов в различных кодировках из-за разных принципов кодирования символов. 13
Например, в кодировке UTF-8 один символ может быть закодирован разным количеством байтов. 3 Длина символов в этой кодировке непостоянна и зависит от номера кодовой точки конкретного символа. 5 Так, кириллица кодируется двумя байтами. 13
В кодировке UTF-16 символы с кодами менее 55296 (D800 в 16-чной системе счисления) кодируются двумя байтами, а символы с кодами выше кодируются как суррогатная пара — четырьмя байтами. 1
Кроме того, исторически в Windows для переноса строки использовалась последовательность из двух символов — 13 (CR) и 10 (LF). 24