Просто не используйте класс URLVariables, как известно, другие тоже делают неправильно. Этот URL RFC вызывает подчеркивание специальным символом и помещает его в ту же категорию, что и буквенно-цифровая, говоря, что кодировка не требуется. Этот RFC вызывает часть, в которой у вас есть переменные, как "запрос" и выделяет для нее pchar, описывая pchar как содержащий символ подчеркивания.
На практике URI, содержащий символы подчеркивания, не создает проблем для браузеров или серверов, поэтому просто неправильно кодировать его.
РЕДАКТИРОВАТЬ: из дальнейшего прочтения это выглядит скорее так, что это скорее нежелательное поведение, чем ошибка (нормализатор URI будет знать, чтобы вернуть закодированное подчеркивание к его первоначальному виду), тем не менее, подчеркивание кодирования такое же, как и кодирование букв английского алфавита - расточительно и глупо.