I'm wondering how you're supposed to handle invalid encoded URL's in PHP. PHP's urldecode decodes invalid encoded querystrings. See example below.
// % is invalid here, it should have been encoded but was not.
$url = 'http://www.test.com/?invalid_parameter=t%C3%A9kst%ads';
$parsedUrl = parse_url($url);
// parse_str automatically urldecode's it.
parse_str($parsedUrl['query'], $output);
// Outputs: tékst�s
var_dump($output['invalid_parameter']);
How can I either detect or remove the invalid placed %, which is resulting in a UTF-8 replacement character?