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 (кроме подсчета количества символов).
  • Вопрос задан
  • 892 просмотра
Решения вопроса 1
@zim32
Вот что я нашел на просторах интернета.
When submitting the form, all browsers canonicalize newlines to \r\n (%0D%0A in URL encoding).

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

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

Войти через центр авторизации
Похожие вопросы