Как это работает?
Все что угодно &#num;
заменяется символом из таблицы ASCII, совпадающим с num
.
Это гекс или что это?
Это не шестнадцатеричное число, число представляет число символов в десятичной форме в таблице ASCII. Проверьте ASCII таблица . Проверьте столбцы Dec и HTML.
Почему они не просто персонажи?
Посмотрите на этот пример:
<div>Hey you can use </div> to end div tag!</div>
Это испортит переводчика. Это плохой пример, но у вас есть идея.
Почему вы не можете использовать escape-символы, как в языках программирования?
У меня нет точного ответа на это. Но HTML, как и XML, является языком разметки, а не языком программирования, и ответ, вероятно, лежит в истории того, как языки разметки становятся тем, чем они являются сейчас.