Похоже, путаница возникла из-за смешения значений "Unicode" и "UTF-8". Юникод - это стандарт, который в основном присваивает номер каждому символу (*). Вот что такое U + 560A: кодовая точка Unicode 560A (которая является шестнадцатеричной для 22026). Десятичные и шестнадцатеричные символы HTML / XML напрямую используют это значение без какой-либо кодировки, поэтому вы можете просто указать это число.
«Юникод» сам по себе еще не является кодировкой. Это означает, что он не определяет уникального сопоставления того, как сопоставить эти символы с байтами.
UTF-8 - одно из таких сопоставлений, которое в основном пытается сопоставить каждую кодовую точку Unicode где-либо между 1 и 4 байтами (чем выше кодовая точка, тем длиннее последовательность байтов).
Кодирование URL обрабатывает текст с определенной кодировкой c, поэтому он должен кодировать байты, созданные UTF-8.
(*) это намного сложнее, и они определяют гораздо больше, чем просто символы, но для цели этого ответа это достаточно близко.