Какой код у символа разрыва строки
Перейти к содержимому

Какой код у символа разрыва строки

  • автор:

Кодировки и окончания строк

В Visual Studio следующие символы интерпретируются как разрывы строк:

  • CR LF: возврат каретки + перевод строки, символы Юникода 000D + 000A;
  • LF: перевод строки, символ Юникода 000A;
  • NEL: следующая строка, символ Юникода 0085;
  • LF: разделитель строки, символ Юникода 2028;
  • PS: разделитель абзаца, символ Юникода 2029.

Для текста, который копируется из других приложений, сохраняется исходная кодировка и символы разрыва строки. Например, при копировании текста из Блокнота и вставке его в текстовый файл в Visual Studio текст имеет те же параметры, которые применялись в Блокноте.

При открытии файла, который содержит разные символы разрыва строки, может появиться диалоговое окно с запросом о том, следует ли нормализовать несогласованные символы разрыва строки и какой тип разрыва строки выбрать.

Дополнительные параметры сохранения

Чтобы определить тип символов разрыва строки, можно использовать параметры в диалоговом окне Файл>Дополнительные параметры сохранения. Кроме того, с помощью этих параметров можно изменить кодировку файла.

Advanced Save Options dialog box

Если в меню Файл пункт Дополнительные параметры сохранения отсутствует, его можно добавить.

  1. Выберите Инструменты, Настроить,
  2. Откройте вкладку Команды, выберите переключатель Строка меню и в соответствующем раскрывающемся списке выберите Файл. Нажмите кнопку Добавить команду.
  3. В диалоговом окне Добавление команды в разделе Категории выберите Файл, а затем в списке Команды выберите элемент Дополнительные параметры сохранения. Нажмите кнопку OK.
  4. С помощью кнопок Вверх и Вниз переместите команду в нужное место в меню. Чтобы закрыть диалоговое окно Настройки, нажмите кнопку Закрыть. Дополнительные сведения см. в разделе Настройка меню и панелей инструментов.

Кроме того, чтобы открыть диалоговое окно Дополнительные параметры сохранения, можно выбрать пункт меню Файл>Сохранить как. В диалоговом окне Сохранить файл как щелкните треугольник раскрывающегося списка рядом с кнопкой Сохранить и выберите пункт Сохранить с кодировкой.

Связанный контент

Перенос строки: описание, значимость, особенности

Перенос строки: описание, значимость, особенности

Перевод строки – базовая операция, которую можно выполнить относительно текстовых данных и символов. Она встречается как в разработке, так и в операционных системах. Далее она будет рассмотрена более подробно. Также предстоит изучить формы ее представления на компьютерах и ключевые особенности.

Определение

Перевод строки – это разрыв. Так называется продолжение печати текста с новой строки (с левого края) на строчку ниже или уже на следующей странице.

String – это последовательность из нуля и более символов, которые не являются элементами новой строчки, а также терминирующего символа новой строки. Такое определение дает стандарт POSIX. На нем базируется почти все современное программное обеспечение.

Символы управления в системах

Системы, базирующиеся на ASCII или совместимом наборе символов, будут использовать или LF (перевод каретки), или CR (возврат каретки) по отдельности. Также возможно применение последовательности CR + LF.

Все текстовые редакторы отображают напечатанные данные в некоем адаптированном виде при помощи преобразований печатных элементов. Пример – перенос строки и табуляция. Соответствующие операции будут выражены в редакторе определенным образом – в виде настоящих отдельных строк или выравнивающих отступов.

Символ переноса строк обычно ставится при нажатии на клавишу Enter. Это классический вариант, но есть и другие. Многое в соответствующем вопросе зависит от того, на какой конкретно платформе будет происходить кодирование информации:

  • в UNIX-системах (сюда включены также современные версии MacOS) будет использоваться всего один символ перевода строки (LF);
  • в Windows задействованы для варианта – возврат каретки (CR) и перевод строки на новую (LF);
  • в старых версиях MacOS, написанных до 2001 года, использовался только символ CR.

Отдельно стоит обратить внимание на Юникод. Здесь используется определенный спектр символов управления.

В Unicode

Действующий стандарты требуют, чтобы приложения, совместимые с Unicode, обязательно воспринимали как перевод строчек каждый из таких символов:

  • LF – подача string;
  • CR – возврат каретки;
  • NEL – переход на следующую string;
  • LS – разделитель строк;
  • PS – разделитель абзацев.

Если используется последовательность CR + LF, она будет восприниматься системой или приложением как одно единственное действие, а не два отдельных.

Термины

Теперь можно изучить несколько понятий, которые помогут лучше освоить символы управления в ASCII:

  1. Перевод строчки сокращается до NEL или newline – «перевод на новую строку».
  2. Возврат каретки – CR. Управляющий символ, который помечается как \r и имеет код 0x0D. При его выводе курсор будет перемещен к левому краю поля. Именно он будет вводится при нажатии на Enter. При записи в файл не рассматривается как отдельный компонент. Данное явление поддерживается только в Macintosh-системах.
  3. Подача на string или перевод. Еще один символ ASCII для управления текстовыми данными. Имеет код 0x0A, а также выражен символом \n. При его использовании курсор будет перемещен на новую строку. Если речь идет о принтере, то бумага будет сдвинута вверх, а на дисплее произойдет сдвиг курсора вниз при наличии пространства. Если же места нет, текст будет прокручен вверх.
  4. Аппаратный (жесткий) возврат – разделитель строк, который проставляется пользователем. В машинном представлении он имеет яркую выраженность управляющими символами или тегами.
  5. Мягкий возврат – перед строчки, выполненный текстовым процессором в том месте, где было выбрано. Он разделяет строки в визуальном (том, который видит пользователь) представлении. В машинной интерпретации может быть никак не выражаться.

Если ввести в терминале последовательность CR + LF (код 0x0D0A), согласно семантики терминала, будет создана новая строчка.

В Word

Знак перехода на новую строчку чаще всего используется в текстовых редакторах. Пример – Word. Далее предстоит выяснить, как в том или ином случае перенести каретку на новую string в том или ином случае. В MS Word существуют несколько методов реализации соответствующей задачи.

Без создания абзаца

Иногда конец строчки не нужен – необходимо просто сделать разрыв между текстовыми данными. В этом случае можно использовать один прием MS Word. Он позволяет перейти на другую строчку, рассматривая обе strings в качестве единого целого.

Для этого потребуется выполнить следующую последовательность действий:

  1. Открыть документ, с которым планируется работать.
  2. Поставить курсор в «конец» строчки. Последний напечатанный знак в ней станет окончанием.
  3. Нажать сочетание Shift + Enter. Оно будет считано системой как символ переноса строки.

Теперь можно продолжить печать. Абзац окажется разорванным. Каретка будет перемещена вниз, но string будет воспринят системой как одно целое.

Для web

В случае с формированием текста для веб-страниц можно использовать другой алгоритм перехода. С его помощью переводим курсор (каретку) на новую строку для обтекания размещаемых объектов:

  1. В окне открытого документа необходимо поставить курсор после слова, за который требуется осуществить перенос (конец string).
  2. Зайти во вкладку «Макет».
  3. Перейти в «Параметры страницы»–«Разрывы»–«Обтекание текстом».

Остается посмотреть на получившийся результат. Никаких символов возврата каретки/перевода строки здесь не будет. Они не видны пользователю в редакторе.

В программировании

Знак символа конца строки и перехода на новую активно используется в разработке программного обеспечения. Здесь необходимо обратиться к элементам управления в ASCII.

Принцип работы приведен на Python. Здесь будет создан документ со сломанными строчками:

Перенос строки: описание, значимость, особенности

Теперь необходимо создать утилиту wc. Она будет оснащена флагом –I. Используется для подсчитывания strings в документе:

Перенос строки: описание, значимость, особенности

Результат покажет 2. Далее необходимо создать еще один файл с символами.

Перенос строки: описание, значимость, особенности

Переходя к утилите cat, потребуется «склеить» соответствующие 2 документа:

Перенос строки: описание, значимость, особенности

Результат будет непредсказуемым. Здесь можно увидеть полный перечень компонентов управления ASCII. А тут – сопутствующий видео-урок по изученной теме.

Чтобы лучше и быстрее вникнуть в соответствующий вопрос, рекомендуется посетить дистанционные онлайн курсы. Пример – от образовательного центра OTUS. Там быстро научат азам не только разработки приложений, но и системного администрирования. В срок до 12 месяцев получится освоить инновационные профессии с нуля. Можно выбрать одно или несколько направлений для одновременного изучения.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus !

Кодирование перевода строки в текстовых файлах

Потребление электроэнергии

При развитии компьютеров возникла необходимость стандартизации формата хранения и отображения текстовых файлов, чтобы с текстом, составленным в компьютере одного производителя, можно было работать на компьютере другого производителя без необходимости какого-либо преобразования. Для этого в 1963 году была разработана стандартная таблица ASCII, определяющая, как должны кодироваться буквы английского языка, цифры, некоторые другие символы (+%,@$…), а также ряд управляющих символов, не имеющих графического представления и служащих для управления выводом.

Первоначально таблица описывала 127 символов, позже была расширена до 255 символов (для хранения используются 8 бит). Коды символов из таблицы ASCII принято записывать в 16-ричном виде, например, латинская буква ‘A’ кодируется 10-тичным числом ’65’, которое в 16-ричном виде записывается как ‘0x41’.

Следует подчеркнуть, что в то время еще не существовало графических интерфейсов для взаимодействия с компьютером. Вместо этого в качестве интерактивных терминалов для взаимодействия оператора и ЭВМ использовались «телетайпы» (teletype), представляющие что-то вроде электромеханических печатающих машин, в которых вывод осуществлялся печатью на бумагу (или, в более поздних моделях, отображением на текстовый дисплей). И управляющие символы из состава таблицы ASCII отражают специфику управления такими устройствами. Например:

Символ с кодом ‘0x07’ (bell) ничего не печатает, вместо этого воспроизводится звуковой сигнал для привлечения внимания оператора.

Символ с кодом ‘0x08’ (backspace) означает ‘вернуть печатающую головку на одну позицию назад’. Это, в частности, позволяло печатать несколько символов поверх друг-друга и реализовывать жирный или подчёркнутый шрифт.

Символ с кодом ‘0x0A‘ (line feed) означает ‘перевести строку’, т.е. сдвинуть печатающую головку на 1 строку вниз.

Символ с кодом ‘0x0С’ (form feed) заставляет принтер завершить печать на используемом листе бумаги, промотать этот лист и дальнейшую печать продолжать на следующем листе.

Символ с кодом ‘0x0D‘ (carriage return) означает ‘возврат каретки’, т.е. возвращает курсор или головку в начало текущей строки (без перевода строки)

Однако полной стандартизации не получилось и так исторически сложилось, что в операционных системах разных семейств перевод строки в текстовом файле кодируется разными последовательностями управляющих символов ASCII :

Для семейств Unix / Linux / BSD / Solaris / … перевод строки кодируется одним символом с кодом ‘0x0A’. Видимо, подразумевается, что возврат на начало строки при этом происходит по умолчанию.

Для семейств DOS и Windows перевод строки кодируется двумя последовательными символами с 16-ричными кодами ‘0x0D’ и ‘0x0A’.

Для семейства Macintosh до версии 9.0 — одним символом с кодом ‘0x0D’.
Для семейства Macintosh после версии MacOS X — одним символом с кодом ‘0x0A’.

В результате текстовый файл, составленный в ОС семейства Windows и скопированный на интерфейсный сервер, может содержать лишние символы с кодом ‘0x0D’, которые в некоторых ситуациях приведут к ошибкам при его обработке.

Если такие символы присутствуют в скрипте для qsub, то попытка его запуска планировщиком завершится ошибкой следующего вида:

-bash: /var/spool/PBS/mom_priv/jobs/XXXXXX.vm-pbs.SC: /bin/bash^M: bad interpreter: No such file or directory

Дело в том, что вместо интерпретатора ‘/bin/bash’, указанного в самой первой строке скрипта, получился ‘/bin/bash^M’, а такого файла не существует (о чём и говорит фраза ‘No such file or directory’)

Управляющие символы внутри текстового файла можно увидеть, например, из Midnight Commanger, встав на файл курсором и затем:

или нажав F4 (редактирование файла). Если в тексте присутствуют символы с кодом ‘0x0D’, они будут отображаться в конце строки как ‘^M

или нажав F3 (просмотр файла), а затем F4 (отображение в 16-ричном виде).

Удалить все такие лишние символы ‘0x0D’ можно или вручную из mc, или выполнив на интерфейсном сервере утилиту ‘dos2unix‘, которой в качестве параметра сообщается имя файла, который необходимо преобразовать (будет модифицирован сам исходный файл, без создания нового файла или резервной копии):

dos2unix submit.sh

Существует и аналогичная утилита с именем ‘unix2dos’, осуществляющая преобразование в обратную сторону (добавляя ‘0x0D’ перед каждым ‘0x0A’).

Кроме того, многие программы для передачи файлов умеют сами преобразовывать передаваемые файлы, автоматически добавляя или удаляя символы перевода строки. Например, WinSCP так поступает по умолчанию, если передаваемый файл имеет определённые расширения (txt, html, …), но расширение ‘sh’ в их состав не входит. Нужно или каждый раз при пересылке текстового файла переключать режим передачи в Text, или зайти в настройки и добавить нужные расширения.

Либо, чтобы исключить необходимость перекодирования, создавать и редактировать текстовые файлы можно непосредственно на интерфейсном сервере.

CRLF

CR и LF это управляющие символы или байт-код которые можно использовать для обозначения разрыва строки в текстовых файлах.

  • CR = Возврат каретки (Carriage Return) ( \r , 0x0D в шестнадцатеричной, 13 в десятичной системе счисления) — перемещает курсор в начало строки, не переходя на следующую строку.
  • LF = Перевод строки (Line Feed) ( \n , 0x0A в шестнадцатеричной, 10 в десятичной системе счисления — перемещает курсор на следующую строку, не возвращаясь в начало строки.

CR, за которым сразу следует LF (CRLF, \r\n , или 0x0D0A ) перемещает курсор на следующую строку и затем перемещает его в начало строки.

Help improve MDN

Was this page helpful to you?

Learn how to contribute. This page was last modified on 12 нояб. 2023 г. by MDN contributors.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *