Поскольку URI могут содержать только символы ASCII, другие символы должны быть закодированы как% плюс две шестнадцатеричные цифры. Например, сам% будет закодирован (экранирован, если хотите) как% 25, потому что шестнадцатеричное 25 или десятичное 37 является кодовой точкой для%.
Это кодирование не обязательно, так как: и / допускаются в чистом виде. Дело в том, что стандарт определяет, что он в точности эквивалентен использованию / или: напрямую. Но многие браузеры и серверы фактически не замечают этого для таких распространенных символов.
Другая вещь - это использование URI в качестве идентификаторов пространства имен, как это делает XML. Если даже две строки могут соответствовать одному и тому же URI, на самом деле они могут быть разными пространствами имен, поскольку строка символов отличается.