Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
10

В вычислениях и наборе мягкий дефис (ISO 8859: 0xAD, Unicode U + 00AD SOFT HYPHEN , HTML: & # 173; & shy;) или слоговый дефис (EBCDIC: 0xCA), сокращенно SHY , является кодовой точкой, зарезервированной в некоторых кодированных наборы символов для разбивки слов по строкам путем вставки видимых дефисов . Появились два альтернативных способа использования символа мягкого дефиса для этой цели, в зависимости от того, будет ли закодированный текст разбит на строки его получателем или уже был предварительно отформатирован его создателем. [1] [2] [3]

Текст для форматирования получателем [ править ]

Использование символов SHY в тексте, который будет разбит на строки получателем, является контекстом приложения, учитываемым спецификациями HTML и Unicode после 1999 года , а также некоторыми форматами файлов текстовых редакторов. В этом контексте мягкий дефис можно также назвать дискреционным дефисом или необязательным дефисом . Он служит невидимым маркером, используемым для указания места в тексте, где разрешен перенос через дефис, без принудительного переноса строки в неудобном месте, если текст перетекает заново. Он становится видимым только после переноса слова в конце строки. Семантика Unicode мягкого дефиса и реализация HTML во многом похожи на пространство нулевой ширины Unicode., за исключением того, что мягкий дефис сохраняет кернинг символов с обеих сторон, когда он не виден. С другой стороны, пространство нулевой ширины не будет, поскольку оно считается видимым символом, даже если оно не визуализировано, таким образом, имея свои собственные метрики кернинга.

Чтобы показать эффект мягкого переноса в HTML, слова в следующем тексте [4] были разделены мягкими дефисами:

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] (Примечание: это не то же самое, что и команда операционной системы (OSC) управляющего кода C1 ISO / IEC 6429 ) .
  • ISO 8859-1 : 1986 (Latin 1) унаследовал SHY от EBCDIC, но назвал его «мягким дефисом», поместил его в позицию 0xAD (шестнадцатеричный) и указал его цель как «для использования, когда в слове установлен разрыв строки. ". Другие части ISO 8859 поместили его в то же положение, за исключением ISO 8859-11 (латинский / тайский), в котором его нет.
  • Кодовая страница IBM 850 ( набор символов MS-DOS, охватывающий все символы ISO 8859-1) поместила ее в позицию 240 = 0xF0.
  • SGML «s "Числовые и специальный графический"(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) включил в себя "& shy;" символьный объект из SGML, но явно не рекомендовал его использование.
  • В HTML 4 (1999 г.) назначение символа было переопределено как обозначение возможности расстановки переносов, которая после форматирования становится видимой как дефис в конце строки.
  • Unicode 4.0 (2002) изменил категорию своего символа SHY с ранее использовавшегося «Pd» (пунктуация, тире) на «Cf» (другой, формат), тем самым согласовав его интерпретацию символа с интерпретацией HTML 4.

Другие команды для обозначения возможности расстановки переносов в языках форматирования текста (аналогично интерпретации SHY в HTML 4 и Unicode 4.0):

  • TROFF и Грофф : \%.
  • TeX и LaTeX : \-[8]

Проблемы безопасности [ править ]

Мягкие дефисы использовались, чтобы скрыть вредоносные домены или URL-адреса в спаме электронной почты . [9] [10]

См. Также [ править ]

  • Жесткий дефис
  • Неразрывное пространство
  • Разделитель слов
  • Соединитель слов
  • Пространство нулевой ширины
  • Перенос слова

Ссылки [ править ]

  1. ^ a b c Юкка Корпела (январь 2011 г.). «Мягкий дефис (SHY) - сложная проблема?» . Технологический университет Тампере . Проверено 8 апреля 2011 года .
  2. ^ a b Маркус Г. Кун (4 июня 2003 г.). «Unicode-интерпретация SOFT HYPHEN нарушает совместимость ISO 8859-1» (PDF) . Технический комитет Unicode . L2 / 03-155R.
  3. Эрик Мюллер (14 августа 2002 г.). «Да, SOFT HYPHEN - сложная проблема» . Технический комитет Unicode . L2 / 02-279.
  4. Демонстрационный текст из стихотворения Хопкинс, Джерард Мэнли , Весна и осень: маленькому ребенку.
  5. ^ "Расширенный двоично-десятичный код обмена - S / 390" . comsci.us . Проверено 8 апреля 2011 года .
  6. ^ «Глоссарий» . IBM . Проверено 8 апреля 2011 года .
  7. ^ DIN (15 июля 1979 г.). Дополнительные функции управления для библиографического использования в соответствии с немецким стандартом DIN 31626 (PDF) . ITSCJ / IPSJ . ISO-IR-040.
  8. ^ «Обычно путающие персонажи» . Грег Бейкер, Университет Саймона Фрейзера . Проверено 12 июля 2011 года .
  9. ^ «Спамеры, использующие мягкий дефис для скрытия вредоносных URL-адресов» . Slashdot . 7 октября 2010 . Проверено 8 апреля 2011 года .
  10. ^ "Мягкий дефис - новый метод обфускации URL" . Symantec . Проверено 8 апреля 2011 года .