Xpoint
   [напомнить пароль]

Перевод строк: \r и \n в разных ОС и браузерах

Метки: [без меток]
2005-01-09 17:38:20 [обр] Дмитрий Котеров(15/912)[досье]
сообщение промодерировано

Хочется точно определиться насчет того, как разные ОС по умолчанию используют символы перевода строки и возврата каретки.

  1. Windows

Окончание строки в файле: \x0D\x0A.
В языках: \r=\x0D, \n=\x0A.
Окончание строки на языке: \r\n
Браузер под Windows должен посылать на сервер: \x0D\x0A (???)
Разделитель файлового пути: / или \

  1. Unix:

Окончание строки в файле: \x0A.
В языках: \r=\x0D, \n=\x0A.
Окончание строки на языке: \n
Браузер под Unix должен посылать на сервер: \x0D\x0A (??? вот тут совсем неизвестно)
Разделитель файлового пути: /

  1. MacOS:

Окончание строки в файле: \x0A\x0D (??? все еще такое ???)
В языках: \r=\x0A, \n=\x0D (???)
Окончание строки на языке: \r\n (такое же, как в Windows - за счет перестановки)
Браузер под MacOs должен посылать на сервер: \x0D\x0A (???)
Разделитель файлового пути: / (??? еще какой-то есть ???)

Пожалуйста, там, где вопросики, дайте точный ответ. И, думаю, тему неплохо было бы добавить в FAQ потом.

спустя 9 минут [обр] Владимир Палант(49/4445)[досье]

Протокол HTTP предписывает \x0D\x0A как перевод строки — всегда, независимо от операционной системы.

Как минимум в Java и Perl \r и \n всегда имеют одно и то же значение. Возможно, что в C под классическим Mac OS значения другие, но что-то я сомневаюсь.

Mac OS X = Unix по всем критериям.

Mac OS:
Окончание строки: \x0D
Разделитель файлового пути: : (двоеточие)

спустя 5 минут [обр] Владимир Палант(49/4445)[досье]
сообщение промодерировано

По поводу значений \r и \n — похоже, что я ошибся. Таблица из perldoc perlport

UnixDOSMac
\nLFLFCR
\rCRCRLF
\n *LFCRLFCR
\r *CRCRLF

* text-mode STDIO

спустя 9 часов [обр] Дмитрий Котеров(15/912)[досье]
Протокол HTTP предписывает \x0D\x0A как перевод строки — всегда, независимо от операционной системы.
В multipart-формах тоже?
Если рядом 2 поля: файловое (input type=file) и текстовое (textarea), что - в первом не произойдет трансляция \r\n -> \n, а во втором - произойдет?
спустя 7 часов [обр] Алексей Севрюков(0/1280)[досье]
Дмитрий Котеров[досье] AFAIK должно быть одинаково. Я вроде проверял еще давно. Если и будет преобразование, то всего содержимого и на стороне сервера уже вроде (в Апаче есть соответствующая директива).
спустя 8 часов [обр] Дмитрий Котеров(15/912)[досье]
mod_charset не в счет, мы сейчас говорим чисто о браузерных штучках.
спустя 18 минут [обр] Алексей Севрюков(0/1280)[досье]
Дмитрий Котеров[досье] AFAIK одинаково и в браузере.
спустя 46 минут [обр] Дмитрий Котеров(15/912)[досье]

Т.е. в случае мультипарта и в файловом, и в текстовом поле не будет производиться преобразование \n->\r\n?

Мне, к сожалению, не в чем проверить.

спустя 3 часа 22 минуты [обр] Алексей Севрюков(0/1280)[досье]
Дмитрий Котеров[досье] Завтра я это проверю точно.
спустя 14 часов [обр] Lynn «Кофеман»(0/571)[досье]
С каких пор в DOS/Windows „/“ стало разделителем файлового пути?
спустя 1 час 4 минуты [обр] Владимир Палант(49/4445)[досье]
Lynn «Кофеман»[досье]
Как минимум Windows XP этот разделитель признаёт. Но я согласен, никаких "или" здесь нет, настоящий разделитель в DOS/Windows только один.
спустя 1 час 43 минуты [обр] Lynn «Кофеман»(0/571)[досье]
Владимир Палант[досье]
Пожалуй только в команде chdir (cd)
D:\>dir Music/Various
Invalid switch - "Various".

D:\>cd Music/Various

D:\Music\Various>
спустя 4 часа 40 минут [обр] Дмитрий Котеров(15/912)[досье]
Имеется в виду, что во всех основных языках программирования (C++, Java, Delphi, PHP, Perl и т.д.) разделитель "/" в Windows работает.
спустя 2 минуты [обр] Владимир Палант(49/4445)[досье]
Насчёт C++/Delphi я не уверен, они работают с Windows API, а поддерживается ли там везде "/" — ещё очень большой вопрос...
спустя 3 часа 18 минут [обр] Дмитрий Котеров(15/912)[досье]
Насчёт C++/Delphi я не уверен
А я уверен, т.к. активно ими пользуюсь.
Powered by POEM™ Engine Copyright © 2002-2005