В консоли Chrome я ввел следующее:
decodeURIComponent('a%AFc');
Вместо результата a0xAFc он вызвал исключение URIError (неправильный uri).
Я слышал несколько оправданий, почему это возможно, но то, что я не понимаю, почему?
Функция decodeURIComponent(), в частности, должна декодировать данные, а не проверять URI.