Lo acabo de completar, puede no ser la mejor opcion o el mejor codigo, pero funciona para lo que lo necesito.
Código PHP:
function lowercase_hex($string){
$first_encode= urlencode($string);
$subject = $first_encode;
$pattern = '/%(\d[A-F]|[A-F]\d)/';
preg_match_all($pattern, $subject, $matches);
$replace = $matches['0'];
$replacer = array();
foreach ($replace as $key => $value) {
$replacer[$key] = strtolower($value);
}
$returns = str_replace($replace, $replacer, $first_encode);
return $returns;
}