<leise>entschuldigung</leise>
Angenommen. Ich sag's auch nicht weiter :-)
Das wird zu %3B.
Dann müsste also %3B von parse_str() aufgelöst werden, wenn es genauso wie bei der Generierung der Arrays $_GET, $_POST & Co. arbeitet.
parse_str('foo="%3B";bar=%26&baz=42');
erzeugt mit print_r($GLOBALS) u.a.
[foo] => ";"
[bar] => &
[baz] => 42
wenn &; für arg_separator.input in "php.ini, .htaccess or httpd.conf" gesetzt wird.
Wenn es so ist, dürfte es tatsächlich nicht schädlich sein, und man könnte es dauerhaft zusäzlich zum & einschalten.
Sag ich doch schon immer :-)