Мягкий дефис

В вычислительной технике и наборе текста мягкий дефис (Unicode U+00AD МЯГКИЙ ДЕФИС ( &застенчивый; )) или слоговый дефис — это кодовая точка, зарезервированная в некоторых наборах кодированных символов с целью разбиения слов на строки путем вставки видимых дефисов , если они попадают в конец строки, но остаются невидимыми внутри строки.
Появились два альтернативных способа использования символа мягкого дефиса для этой цели, в зависимости от того, будет ли закодированный текст разбит на строки получателем или уже предварительно отформатирован его создателем. [1] [2] [3]
Текст, форматируемый получателем [ править ]
Использование символов SHY в тексте, который получатель разбивает на строки, является контекстом приложения, учитываемым спецификациями HTML и Unicode после 1999 года , а также некоторыми форматами файлов текстовых процессоров. В этом контексте мягкий дефис также можно назвать произвольным дефисом или необязательным дефисом . Он служит невидимым маркером, используемым для указания места в тексте, где допускается перенос через дефис, без принудительного разрыва строки в неудобном месте при перекомпоновке текста. Оно становится видимым только после переноса слов в конце строки. [4] Семантика и реализация HTML мягкого дефиса в Юникоде во многом аналогичны пространству нулевой ширины в Юникоде , за исключением того, что мягкий дефис сохраняет кернинг символов с обеих сторон, когда он не виден. Пространство нулевой ширины, с другой стороны, не будет, поскольку оно считается видимым символом, даже если оно не отображается, и поэтому имеет свои собственные метрики кернинга.
Чтобы показать эффект мягкого дефиса в HTML, слова следующего текста (из стихотворения и осень Весна Джерарда Мэнли Хопкинса « ») были разделены мягкими дефисами:
MargaretAreYouGrievingOverGoldengroveUnleavingLeavesLikeTheThingsOfManYouWithYourFreshThoughtsCareForCanYouAhAsTheHeartGrowsOlderItWillComeToSuchSightsColderByAndByNorSpareASighThoughWorldsOfWanwoodLeafmealLieAndYetYouWillWeepAndKnowWhyNowNoMatterChildTheNameSorrowsSpringsAreTheSameNorMouthHadNoNorMindExpressedWhatHeartHeardOfGhostGuessedItIsTheBlightManWasBornForItIsMargaretYouMournFor
В HTML-браузерах, поддерживающих мягкие дефисы, изменение размера окна приведет к повторному разбиению приведенного выше текста только на границах слов и вставке дефиса в конце каждой строки.
Текст, отформатированный автором [ править ]
Символ SHY также используется в тексте, где абзацы уже разбиты на строки, например, в некоторых текстовых файлах, тексте, отправленном на VT100 или принтеры в стиле эмуляторы терминала , или на страницах, представленных на языках описания страниц . Это контекст приложения, изначально рассматриваемый стандартами EBCDIC и ISO 8859-1 и реализованный во многих VT100 эмуляторах терминала . [1] [2]
Здесь SHY — это видимый дефис, который обычно визуально неотличим от обычного дефиса, но вставлен исключительно с целью переноса строки. Цель мягкого дефиса — отличить его от любого обычного дефиса, который мог быть частью исходного написания слова. Это различие помогает повторно использовать уже отформатированный текст, когда необходимо удалить разрывы строк и мягкие дефисы, вставленные во время переноса слов, чтобы преобразовать текст обратно в его неформатированную форму. Например, функция копирования или вставки эмулятора терминала может предложить заменить разрывы строк на пробел и удалить любые мягкие дефисы, включая любые символы пробела, следующие сразу за ними .
Примером приложения, которое по этой причине выводит мягкие дефисы, является программа форматирования текста groff , используемая во многих системах Unix/Linux для отображения страниц руководства .
Кодировки и определения [ править ]
Символы мягкого дефиса ( SHY ) в наборах закодированных символов, примерно в хронологическом порядке:
- EBCDIC поместил символ SHY (известный там как «сложный дефис») в позицию 202 ( шестнадцатеричный 0xCA ). [1] [5] IBM определила свою цель как «дефис, используемый для разделения слова в конце строки, [который] может быть удален, когда программа корректирует строки». [6]
- Немецкий стандарт DIN 31626 определил набор управляющих кодов C1, определяющий 0x8D как «Необязательный контроль слогообразования (OSC)», «символ управления печатью» для использования для обозначения границ слогов в длинных словах. Этот контрольный набор C1 был зарегистрирован в 1979 году. [7] (Примечание: это не то же самое, что ISO/IEC 6429 C1. код управления Команда операционной системы (OSC) .)
- ISO 8859-1 :1986 (латиница 1) унаследовал SHY от EBCDIC, но назвал его «мягким дефисом», поместил его в позицию 0xAD (шестнадцатеричный) и указал его цель как «для использования, когда внутри слова установлен разрыв строки». ". В других частях ISO 8859 он находится в том же положении, за исключением ISO 8859-11 (латинский/тайский), в котором он отсутствует.
- IBM Кодовая страница 850 ( набор символов MS-DOS , охватывающий все символы ISO 8859-1) поместила его в позицию 240 = 0xF0.
- SGML «Числовая и специальная графика» (isonum) Набор символов (ISO 8879:1986) включает в себя
­
для мягкого дефиса ISO 8859-1. - Unicode 1.0 (1991 г.) и ISO 10646 (1993 г.) взяли первые 256 позиций кода из ISO 8859-1, в результате чего SHY получил кодовую точку Unicode U+00AD.
- В HTML 2 (1995 г.) был включен символ «­». символьный объект из SGML, но явно не рекомендовал его использование.
- HTML 4 (1999) переопределил назначение символа как обозначение возможности расстановки переносов, которая становится видимой только как дефис в конце строки после форматирования.
- В Unicode 4.0 (2002 г.) категория символа SHY была изменена с прежней «Pd» (пунктуация, тире) на «Cf» (другое, формат), тем самым согласовав интерпретацию символа с интерпретацией HTML 4.
Другие команды для обозначения возможностей расстановки переносов в языках форматирования текста (аналогично интерпретации SHY в HTML 4 и Unicode 4.0):
Проблемы безопасности [ править ]
Мягкие дефисы, как и другие невидимые символы, использовались для сокрытия вредоносных доменов или URL-адресов в спаме по электронной почте . [9] [10]
Они также используются в электронных письмах, чтобы попытаться обойти системы предотвращения спама. Например, фраза «Мне нужна ваша помощь незаметно» имеет мягкий дефис в слове «помощь», что может означать, что почтовая система не обнаружит эту фразу в теле электронного письма. [ нужна ссылка ]
См. также [ править ]
- Твёрдый дефис
- Неразрывное пространство
- Разделитель слов
- Столяр слов
- Пространство нулевой ширины
- перенос слов
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с Юкка Корпела (январь 2011 г.). «Мягкий дефис (SHY) – сложная задача?» . Технологический университет Тампере . Проверено 8 апреля 2011 г.
- ^ Jump up to: Перейти обратно: а б Маркус Г. Кун (4 июня 2003 г.). «Интерпретация SOFT HYPHEN в Юникоде нарушает совместимость ISO 8859-1» (PDF) . Технический комитет Юникод . Л2/03-155Р.
- ^ Эрик Мюллер (14 августа 2002 г.). «Да, МЯГКИЙ ДЕФИС — это сложная проблема» . Технический комитет Юникод . Л2/02-279.
- ^ «Спецификация текстового модуля CSS уровня 3» . Проект рекомендации кандидата W3C . Консорциум Всемирной паутины (W3C) . Проверено 7 августа 2022 г.
- ^ «Расширенный двоично-десятичный код обмена - S/390» . comsci.us . Проверено 8 апреля 2011 г.
- ^ «Глоссарий» . ИБМ . Проверено 8 апреля 2011 г.
- ^ DIN (15 июля 1979 г.). Дополнительные функции управления для библиографического использования в соответствии с немецким стандартом DIN 31626 (PDF) . ITSCJ/ IPSJ . ИСО-ИК -40.
- ^ «Персонажи, которых часто путают» . Грег Бейкер, Университет Саймона Фрейзера . Проверено 12 июля 2011 г.
- ^ «Спамеры используют мягкий дефис, чтобы скрыть вредоносные URL-адреса» . Слэшдот . 7 октября 2010 г. Проверено 8 апреля 2011 г.
- ^ «Мягкий дефис — новый метод обфускации URL-адресов» . Симантек . Проверено 8 апреля 2011 г.