Символьные подстановки, cпецсимволы в HTML, Мнемоники

Как бы ни был широк выбор кодировок и разнообразен набор символов, существует следующее ограничение: не все символы можно набрать на клавиатуре. Например, символ зарегистрированного торгового знака - ®, или торговой марки - ™. Для ввода подобных знаков используют символьные подстановки.

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

&мнемокод; - вставка символа по его "мнемокоду" (имени). 
&#КОД10; - вставка символа по его десятичному коду. 
&#xКОД16; - вставка символа по его шеснадцатиричному коду.

Например, следующие подстановки заменяются символом ®

® 
® 
®

Символьные подстановки применяются не только для вставки символов, которых нет на клавиатуре, но, так же для вставки символов, имеющих специальное назначение в XHTML. К примеру, вы никогда не задумывались, как вывести на страницу текст, содержащий XHTML тэги? Например такую фразу:

"Для вывода текста полужирным начертанием, выделите его 
тэгами <strong> и </strong>".

Символы "<" и ">" играют особую роль в XHTML - начинают и завершают тэги. Поэтому непосредственная вставка их в код страницы приведет к интерпретации <strong> и </strong> как тэгов и не даст желаемого результата. Нужно использовать символьные подстановки.

Символ Мнемокод 10 Код 16 Код Пояснение
< &lt; &#60; &#x3C;
> &gt; &#62; &#x3E;
& &amp; &#38; &#x26;Амперсанд
" &quot; &#34; &#x22;
&nbsp; &#160; &#A0; Символ "неразрывного пробела". Слова, разделяемые им не переносятся по отдельности.
&shy; &#173; &#AD; Символ "мягкого переноса". Части слова, соединяемые им, переносятся, при необходимости. На месте переноса отображается символ "-"
© &copy; &#169; &#A9;
® &reg; &#174; &#AE;
&trade; &#8482; &#2122;
¤&curren;
¦&brvbar;
§&sect;
ª&ordf;
«&laquo;
°&deg;
±&plusmn;
µ&micro;
&para;
·&middot;
¹&sup1;
&euro;
ʼ ˈ ˌ ː ˑ ˘ ‖ ‿ &#700; &#712; &#716; &#720; &#721; &#728; &#8214; &#8255;
Символы &nbsp; и &shy; заслуживают более пристального внимания, потому что эти символы не визуализируются непосредственно, как, например, символы & или © и используются в довольно специфических случаях.

Читайте также: Мнемоники в HTML.

символ	html-код	десятичный код	описание
•	&bull;	&#8226;	Простой маркер
○	 	&#9675;	Круг
·	&middot;	&#183;	Средняя точка
†	 	&#8224;	Крестик
‡	 	&#8225;	Двойной крестик
♠	&spades;	&#9824;	Пики
♣	&clubs;	&#9827;	Трефы
♥	&hearts;	&#9829;	Червы
♦	&diams;	&#9830;	Бубны
◊	&loz;	&#9674;	Ромб
❤	 	&#10084;	Жирное сердце
✓	 	&#10003;	Символ галочка
✔	 	&#10004;	Жирная отметка галочкой
𐄂	 	&#65794;	Крестик
🗸	 	&#128504;	Тонкая галочка
✅	 	&#9989;	Жирная незакрашенная отметка галочка
☑	 	&#9745;	Галочка в квадрате
🗹	 	&#128505;	Жирная галочка в квадрате
⚠	 	&#9888;	Внимание!
❌	 	&#10060;	X, знак умножения, крестик, удалить
❎	 	&#10062;	Белый крест в квадрате
✖	 	&#10006;	Крест, жирный знак умножения
⨻	 	&#10811;	Знак умножения в треугольнике, пересечение равнозначных дорог
⏰	 	&#9200;	Будильник
⌚	 	&#8986;	Наручные часы
⌛	 	&#8987;	Песочные часы
⏳	 	&#9203;	Песочные часы
🕰	 	&#128368;	Каминные часы

Символ &nbsp; создает пробел, однако, в отличие от обычного пробела, несколько символов &nbsp;, записанных подряд, не удаляются браузером. Кроме того, если несколько слов соединяются неразрывным пробелом, то при достижении границы окна браузера, все эти слова вместе будут перенесены на следующую строку. Такой подход используется, например, при записи Ф.И.О., или наименования организации:

Пример. Использование неразрывного пробела.

...
<p>Символ "неразрывный пробел" используется в тех случаях, 
когда необходимо предотвратить нежелательный перенос слов 
при записи названий организаций или инициалов. Например - 
<b>WWW&nbsp;Consortium</b> или <b>Артемов&nbsp;АН</b>. 
Чтобы увидеть результат, изменяйте ширину окна и следите
за поведением выделенных фрагментов.
</p>
...

В противоположность неразрывному пробелу, символ мягкого переноса - &shy; служит для создания переноса в том месте, где это может потребоваться. При этом, на месте переноса появляется символ "-". Если перенос не требуется, символ &shy; не визуализируется. Применяется мягкий перенос преимущественно в длинных словах, для более равномерного распределения текста на странице.

Пример. Применение мягкого переноса.

<p>В 1991 году была предпри&shy;нята попытка создать единую 
универ&shy;сальную двухбай&shy;товую коди&shy;ровку, охваты&shy;вающую 
все алфавиты и иерогли&shy;фичес&shy;кие системы мира. Результа&shy;том 
стал стандарт ...
</p>

Таблица символов кодирования URL

Появление адресов URL стало существенным нововведением в Интернете. Однако с момента его изобретения и по сей день стандарт URL обладает серьёзным недостатком — в нём можно использовать только ограниченный набор символов, даже меньший, нежели в ASCII: латинские буквы, цифры и лишь некоторые знаки препинания. Если мы захотим использовать в URL символы кириллицы, или иероглифы, или, скажем, специфические символы французского языка, то нужные нам символы должны быть перекодированы особым образом.

Функции в PHP:

  • urlencode()URL-кодирование строки
  • urldecode() — Декодирование URL- кодированной строки. Пример запроса пытающегося получить доступ к файлу с паролями в Linux. Что такое SQL Injection защита
    <?php
    $query = "/component/country?country=unitedarabemirates&BMMZ%3D6733
    %20AND%201%3D1%20UNION%20ALL
    %20SELECT%201%2C2%2C3%2Ctable_name
        %20FROM%20information_schema.tables%20WHERE%202%3E1--%20
        ..%2F..%2F..%2Fetc%2Fpasswd";
     
    echo urldecode($query);

    Результат:

    /component/country?country=unitedarabemirates&
    BMMZ=6733 AND 1=1 UNION ALL SELECT 1,2,3,TABLE_NAME 
    FROM information_schema.tables WHERE 2>1-- ../../../etc/passwd
Распространенные символы. Таблица символов кодирования URL
space%20
#%23
<%3c
=%3d
>%3e
,%2c
/%2f
(%28
)%29
PQ VPS сервера в 28+ странах.