Спеціальні HTML-символи: опис і застосування

HTML – унікальна концепція в програмуванні. До Інтернету програмування було локальним. З появою локальних мереж воно стало багатокористувацьким і розподіленим, але це не було настільки кардинальним явищем, як ідея гіпертексту та її стрімкий розвиток.

Особливості спецсимволов і гіпертексту

До інтернет-програмування все було строго. Є дані і є код, який їх обробляє. Є коментарі, в яких не може бути ніякого коду.

Класичне програмування допускала тільки один виняток: повернення каретки (переведення рядка, табуляцію та інші «невидимі символи, але правильніше – дії. Це ще не HTML-символи, а тільки коди, що мають спеціальні символьні позначення. Під спеціальними символами розумілося те, що не має місця в наборах «видимих» знаків, цифр і букв національних алфавітів.

Коментарі досить швидко взяли стандартну форму:

  • // – і все до кінця однієї рядка – це НЕ КОД;
  • /* … будь-який текст … */ – тут між «/*» і «*/» може бути скільки завгодно рядків будь-якого тексту.

В коментарях ніколи не було ніякого коду, ніяких установок, ніяких доповнень до коду програми. Коментарі будь-яку мову програмування просто пропускав. Гіпертекст пішов далі (або це зробив IE за ініціативи Microsoft?). По-перше, тут коментар позначається:

  • «<!–» – початок;
  • «–>» – кінець, краще писати «//–>».

По-друге, коментар тепер може бути умовною. Саме по собі призначення коментарю іншого сенсу, ніж «пояснення з даних і коду алгоритму …» – нонсенс.

В даному прикладі «коментарі», виділені малиновим фоном, гарантують фатальну помилку HTML-сторінки.

Звичайні та спеціальні символи HTML

Коди символів мають значення. Це зовсім інше значення, ніж знак, цифра або літера.

Наприклад, символ «<» – це початок тега і це не завжди безпечно для будь-якої веб-сторінки: браузер працює з тегами, і цим все сказано! Символ «<» або HTML символ «<» – зовсім різні речі. А ось «символ» &lt; – це завжди і скрізь знак менше, кутова дужка або інший сенс, який людина звично вкладає в це накреслення.

Звичайні символи в мові гіпертексту отримують подвійне значення:

  • вони залишаються звичними і затребуваними;
  • деякі символи набувають статус спеціальних.

Спеціальні HTML-символи вимагають до себе особливого ставлення. Наприклад, попередній зворотний слеш “”, екранування, перетворення в цифровий код або мнемонічне позначення. Для рядка браузера всі букви кирилиці – це «спецсимволи».

Можна відписати проблему кодування символів на початок комп’ютерної ери, коли восьмибитовая таблиця вміщувала в себе тільки знаки, цифри, латиницю та національний алфавіт (наприклад, кирилицю). Інші символи були спеціальними, мали мнемонічні зображення і використовувалися для дій (управління принтером, портом, внутрішніми або зовнішніми пристроями). Але початок комп’ютерної ери не при чому, проблема утворилася зовсім в іншому місці і в іншому сенсі.

Гіпертекст і кодування

Немає жодних сумнівів, що HTML і символи – це завдання про те, як символами описати інші символи. Природно, доведеться визнати частина символів спеціальними та використовувати їх для опису самих себе та інших символів. Незважаючи на відверті ляпи з коментарями, гіпертекст – об’єктивний результат розвитку інформаційних технологій і блискуче рішення проблеми спеціальних символів.

В Інтернеті спецсимволам приділено так багато уваги, що проблема кодування веб-сторінки – це знання та вміння розробника. Якщо спеціальні символи HTML розробник використовує правильно, сайт буде працювати бездоганно і стабільно.

Кожен символ має мнемонічне зображення, десятковий і шістнадцятковий код. У різних умовах застосування допустиме використання:

  • будь-якого з цих варіантів;
  • тільки одного.

Далеко не завжди і не кожен браузер повідомляє про помилковому використанні спеціального символу і демонстративно йде в себе, пред’являючи розробнику біле вікно. При фактичному наявності знань і умінь у розробника проблем в програмуванні не буде ніколи.

CSS, XML, HTML і символи – це одна струнка система, необхідно просто трансформувати її логіку в потрібний комплекс знань і умінь. Наприклад, у коді сторінки ‘&laquo’ – це ‘«’, але в правилі content CSS – це ‘0AB’.

Поняття і застосування спеціальних символів дозволило створити цікаві ідеї. Тепер можна не турбуватися, що браузер щось зрозуміє не так. Якщо його «дратує» символ & або пробіл « » – можна використовувати мнемонічне позначення або цифровий код. Це різко збільшує кількість символів в HTML-коді, але зате результат стає надійним.

Проста складність або складна простота

Рідкісний сайт обходиться без регулярного виразу. Прекрасний інструмент для пошуку і заміни. Але мова регулярного виразу – це не HTML-символи, а результат, який буде застосований в HTML-коді. Зрозуміти і використовувати регулярні вирази – важке завдання, але звикнути можна, а ефективно використовувати – тим більше.

Принципово, серверний мова легко перетворює спеціальні символи з одного подання до іншого. Наприклад (PHP):

  • $cStrClean = str_replace(‘<‘, ‘&lt;’, $cStrClean)

або

  • $cStrClean = str_replace(‘&lt;’, ‘<‘, $cStrClean)

У регулярних виразах все мінімізовано до межі, а зворотний слеш «», як паличка фокусника Кіо, творить чудеса. Будь спеціальний символ може бути екранований слешем і використаний як дане, а не як символ спецоперації.

Важливо: сторінка коду скрипта і/або веб-сторінка повинна мати правильну кодування. Рядок шаблон регулярного виразу теж. У разі оказії завжди слід трансформувати, наприклад, символи кирилиці у відповідні цифрові коди.

Межі можливого і доцільне

По суті, будь-який веб-ресурс – це джерело інформації. Книжка – це не сайт, але теж джерело інформації. Всі звикли, що книжка має текст та ілюстрації. Тексту властива «обтікати» ілюстрації і вирівнюватися по правій межі.

Використання комп’ютерів і текстових редакторів спростило подання і використання інформації, але не слід переносити ці знання і вміння на інтернет-програмування і HTML-сторінки. Символ переносу, кінець абзацу, табуляції і т. п. – затребувані спеціальні символи, що мають практичне значення, але в інтернет-програмуванні їх краще не застосовувати.

HTML – це концептуально повне рішення. Тут є все, що потрібно і на «всі випадки». Той факт, що є ляп з коментарями – це свідчення швидкості розвитку ідеї, а не фатальна тріщина концептуального характеру. У програмуванні накопичилося безліч недоречностей, але це не привід руйнувати фундамент і будувати нову будівлю з нуля.

Сьогодні є досить багато іншої роботи і немає підстав щось кардинально міняти. Розробники звикли до концепції HTML, у неї вдало імплантовано використання спеціальних HTML-символів. Накопичений ефективний і практичний досвід. Практики можуть спокійно працювати, а теоретикам ніхто не заважає розвивати нові ідеї.

Формалізація, коментарі і мови

Знання та вміння в області формалізації ефективними, великі і практичні. Але саме вірне рішення – йти далі. Природний мову – це і сьогодні недосяжна вершина досконалості.

Коментарі в будь-якому коді повинні містити мінімум інформації і лише з єдиною метою – щось пояснити. Тут не повинно бути ні коду, ні спеціальних символів. Фраза, взята в лапки в тілі коментаря, може призвести до проблеми на сторінці сайту. Мови програмування давно забули про вимога сумісності. Вільні типи даних і орієнтація на конкретну версію мови для розробника – нормальне явище.

Ці три позиції – достатні підстави для безперервного розвитку знань і умінь, накопичення досвіду практичної роботи по розробці стабільних, надійних і безпечних веб-ресурсів. Найголовніша особливість сучасного інтернет-програмування – стрімка динаміка розвитку. Бути в курсі і володіти ситуацією – хороше правило для професійного розробника.