http://www.w3.org/Addressing/rfc1738.txt
"Octets must be encoded if they have no corresponding graphic
character within the US-ASCII coded character set, if the use of
the corresponding character is unsafe, or if the corresponding
character is reserved for some other interpretation within the
particular URL scheme."
Der Zeichensatz ist wohl nicht genauer spezifiziert, es dürfte sich aber um die allgemein übliche US-ASCII-Erweiterung iso-8859-1 handeln - das, was PHP standardmäßig im Quellcode erwartet.
Nach reiflicher Überlegung:
PHP benutzt allerhöchstwahrscheinlich gar keinen Zeichensatz, sondern codiert einfach die Bytewerte; so wie es eigentlich auch oben im RFC steht: Dort ist nicht die Rede von "characters", sondern von "octets".
Die Interpretation hängt also vollkommen von der verarbeitenden Anwendung ab.
Gruß,
soenk.e