Warum registrieren? Nur als registriertes Mitglied vom ABAKUS Forum hast Du vollen Zugriff auf alle Funktionen unserer Website.

UTF-8 kodierten Sonderzeichen als URL Parameter

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Benutzeravatar
Fox Mulder
PostRank 8
PostRank 8
Beiträge: 804
Registriert: 16.11.2004, 09:06

Beitrag von Fox Mulder » 07.02.2005, 11:33

Hallo,

ich übergebe UTF-8 kodierten Sonderzeichen als URL Parameter.
Also z.B. "test.php?variable=%c3%84" für "variable=Ä".
Wenn ich den URL Parameter in test.php auslese kommt aber "Ä" an, ich kann somit keinen Vergleich auf den ursprünglich übergebenen URL-Parameter starten, da "%c3%84" ja nicht gleich "Ä".

Hier ein kleiner Versuchsaufbau dazu: "test.php"
<?php

echo "<br><br>";
echo "Übergabe von UTF-8 Kodierten Sonderzeichen Ä Ö Ü ä ö ü ß als URL Parameter<br><br>";

$string = "%c3%84_%c3%96_%c3%9c_%c3%a4_%c3%b6_%c3%bc_%c3%9f";

echo "<br><br> <a href=\"test.php?variable=$string\">Testaufruf mit URL Parameter</a><br>";


// Wenn URL Parameter existiert ausgeben

if($variable) {

$variable = $_GET[variable];

echo "<br><br>";
echo "<b>Übergebener URL-Parameter:</b> $string";
echo "<br>";
echo "<b>Ausgabe des URL-Parameters:</b> $variable";
echo "<br><br><br>";
echo "<b>Frage:</b><br><br>";
echo "Warum wird der übergebene Parameter $string <br>";
echo "verändert zu $variable";
echo "<br><br><b>Wie kann man dies verhindern?</b>";
}

?>

Wie kann man verhindern das bei Übergabe des URL Parameters dieser verändert wird?

wurzel
PostRank 2
PostRank 2
Beiträge: 52
Registriert: 06.02.2005, 12:16

Beitrag von wurzel » 07.02.2005, 12:58

dein server sendet ein anderes charset als header voraus. wenn du:

Code: Alles auswählen

header&#40;'Content-Type&#58;text/html; charset=UTF-8'&#41;;
am anfang sendest, klappts auch mit den umlauten ...

Benutzeravatar
Fox Mulder
PostRank 8
PostRank 8
Beiträge: 804
Registriert: 16.11.2004, 09:06

Beitrag von Fox Mulder » 07.02.2005, 13:11

wurzel hat geschrieben:dein server sendet ein anderes charset als header voraus. wenn du:

Code: Alles auswählen

header&#40;'Content-Type&#58;text/html; charset=UTF-8'&#41;;
am anfang sendest, klappts auch mit den umlauten ...
Mir geht es nicht um die Darstellung!
Die Zeichen Ä_Ö_Ü_ä_ö_ü_ß werden durch den UTF-8 Header jetzt korrekt im Browser dargestellt, das ist klar.

Im Quelltext stehen aber immer noch die Zeichen Ä_Ö_Ãœ_ä_ö_ü_ß und das sind nicht die von mir übergebenen URL - Parameter.

Ich versteh nicht warum die URL Parameter die ich übergeben habe irgendwie/irgendwo umgewandelt werden und ich somit keinen Vergleich mehr auf die URL Parameter machen kann.

Gruss

wurzel
PostRank 2
PostRank 2
Beiträge: 52
Registriert: 06.02.2005, 12:16

Beitrag von wurzel » 07.02.2005, 13:28

h versteh nicht warum die URL Parameter die ich übergeben habe irgendwie/irgendwo umgewandelt werden und ich somit keinen Vergleich mehr auf die URL Parameter machen kann.
weil die parameter zusätzlich urlencodiert sind ... wenn du den weg gehst:

Code: Alles auswählen

<?php
echo $string=urlencode&#40;utf8_encode&#40;'Ä_Ö_Ü_ä_ö_ü_ß'&#41;&#41;;
echo '<br />';
echo utf8_decode&#40;urldecode&#40;$string&#41;&#41;;
?>
passt es auch wieder ... ohne utf-header

Benutzeravatar
Fox Mulder
PostRank 8
PostRank 8
Beiträge: 804
Registriert: 16.11.2004, 09:06

Beitrag von Fox Mulder » 07.02.2005, 13:42

wurzel hat geschrieben:weil die parameter zusätzlich urlencodiert sind ... wenn du den weg gehst:

Code: Alles auswählen

<?php
echo $string=urlencode&#40;utf8_encode&#40;'Ä_Ö_Ü_ä_ö_ü_ß'&#41;&#41;;
echo '<br />';
echo utf8_decode&#40;urldecode&#40;$string&#41;&#41;;
?>
passt es auch wieder ... ohne utf-header
Ja, das scheint zu klappen, herzlichen Dank!!!

Gruss

ny_unity
PostRank 1
PostRank 1
Beiträge: 1
Registriert: 11.10.2018, 09:35

Beitrag von ny_unity » 11.10.2018, 09:46

Hallo,

ich habe mich hier angemeldet, nur um DANKE zu sagen für den Beitrag von wurzel.

Schön, das ein 13-Jahre alter Beitrag mir helfen konnte =)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag