Note that the characters "." and " " (empty space) will be converted to "_". The characters "[" and "]" have special meaning: They represent arrays but there seems to be some weird behaviour, which I don't really understand:
<?php
// Note: "[" = %5B, "]" = %5D
/*
"v][=a" produces ("[" gets replaced by "_"):
Array
(
[v]_] => a
)
*/
parse_str("v%5D%5B=a", $r);
print_r($r);
/*
"v][[=a" produces (first "[" gets replaced by "_", but not all following):
Array
(
[v]_[] => a
)
*/
parse_str("v%5D%5B%5B=a", $r);
print_r($r);
?>