Кодировка относится к тому, как символ представлен последовательностью байтов. Это происходит на довольно низком уровне в цепочке обработки: вы читаете в байтах и используете кодировку для преобразования в поток символов. ASCII, Latin-1 и UTF-8 являются примерами кодировок.
Ссылки на сущности обрабатываются самим анализатором XML. Последовательность символов, начинающаяся с &
и заканчивающаяся ;
, используется для представления другой последовательности символов (обычно только один). Это происходит на довольно высоком уровне, концептуально «после» того, как анализатор XML определил, где находятся теги. Вот почему <
превращается в обычный старый знак «меньше», а не в начало тега.