Gerald Plessner
2006-08-10 17:12:44 UTC
Hi,
folgendes Problem: IE und Opera encoden einen Request automatisch in UTF-8,
Firefox allerdings per Default nicht (kann über "about:config" geändert
werden, ist aber eben nicht Standardeinstellung).
Dabei geht es _nicht_ um Parameter aus POSTs und GETs, sondern lediglich um
den übermittelten REQUEST_URI.
Beispiel:
"http://www.domain.com/search/böse" kommt, wenn über den Firefox
abgeschickt, in der $_SERVER['REQUEST_URI'] als "/search/b%F6se" an, während
von IE oder Opera abgeschickt es als "/search/%C3%B6se" ankommt.
Wie kann ich jetzt per Skript erkennen, ob der REQUEST_URI UTF-8 oder anders
(ISO-8859) codiert ist? Die PHP-eigenen Erkennungsfunktionen wie
mb_detect_encoding() etc. funktionieren hier nicht, da der REQUEST_URI ein
URL-encoded ASCII-String ist.
Interessant zu beobachten: http://de.wikipedia.org/wiki/Lüttich einmal mit
IE und einmal mit Firefox aufrufen. Irgendwie können die das erkennen,
wandeln dann in UTF-8 um, url-encoded und machen einen Redirect.
Aktuelle Konfiguration: PHP 5.1.4 auf Apache 2.0.58 unter Win XP Pro.
Bin für jeden Tipp dankbar - außer er heisst "Verwende keine Umlaute in
URLs...".
Danke und schönen Gruß,
Gerald
folgendes Problem: IE und Opera encoden einen Request automatisch in UTF-8,
Firefox allerdings per Default nicht (kann über "about:config" geändert
werden, ist aber eben nicht Standardeinstellung).
Dabei geht es _nicht_ um Parameter aus POSTs und GETs, sondern lediglich um
den übermittelten REQUEST_URI.
Beispiel:
"http://www.domain.com/search/böse" kommt, wenn über den Firefox
abgeschickt, in der $_SERVER['REQUEST_URI'] als "/search/b%F6se" an, während
von IE oder Opera abgeschickt es als "/search/%C3%B6se" ankommt.
Wie kann ich jetzt per Skript erkennen, ob der REQUEST_URI UTF-8 oder anders
(ISO-8859) codiert ist? Die PHP-eigenen Erkennungsfunktionen wie
mb_detect_encoding() etc. funktionieren hier nicht, da der REQUEST_URI ein
URL-encoded ASCII-String ist.
Interessant zu beobachten: http://de.wikipedia.org/wiki/Lüttich einmal mit
IE und einmal mit Firefox aufrufen. Irgendwie können die das erkennen,
wandeln dann in UTF-8 um, url-encoded und machen einen Redirect.
Aktuelle Konfiguration: PHP 5.1.4 auf Apache 2.0.58 unter Win XP Pro.
Bin für jeden Tipp dankbar - außer er heisst "Verwende keine Umlaute in
URLs...".
Danke und schönen Gruß,
Gerald