denisbondar
@denisbondar
Python, PHP developer

Почему в textarea окончания строк \n, а в POST уже \r\n?

Добрый день.
Подскажите пожалуйста, почему при вводе текста в textarea и подсчете символов при этом можно сказать, что окончания строк состоят из одного символа, а при сабмите формы фактически получается, что символов больше ровно на один на каждую строку.
Вот пример кода, иллюстрирующий проблему: https://jsfiddle.net/1uha76ps/ (пример не из рабочего кода. Рабочий код не содержит jQuery и перехватов событий отправки формы)

UPD: Проблема возникла в коде, в котором нет jQuery. Я использовал его в примере для визуализации проблемы.
В настоящем коде простая HTML форма и простейший способ подсчета символов в ней.
document.getElementById("text").value.length;
Пока пользователь вводит текст - он видит количество символов и окончание строки считается как один символ, но при отправке формы на сервер количество символов больше ровно на количество окончаний строк.
Например, пользователь ввел текст из 5 строк и видит 69 символов, а на сервер в запросе пришло 73 символа. Событие submit не перехватывается. Повторюсь: форма простая без js (кроме подсчета количества символов).
  • Вопрос задан
  • 893 просмотра
Решения вопроса 1
@zim32
Вот что я нашел на просторах интернета.
When submitting the form, all browsers canonicalize newlines to \r\n (%0D%0A in URL encoding).

Т.е. скорее всего перед отправкой на сервер, символ новой строки нормализуется до "канонического"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы