Folgendes Problem:
formular.php:
(...)
<form name="Formular" action="bearbeiten.php" method="post">
(...)
<input name="knopf" type="submit" value="Ändern">
<input name="knopf" type="submit" value="Löschen">
</form>
(...)
bearbeiten.php:
(...)
$knopf = $_POST['knopf'];
if ($knopf == "Ändern")
{ echo "Ändern mit Umlaut"; }
else if ($knopf == "Ändern")
{ echo "Ändern mit HTML-Charakter"; }
else
{ echo "Knopf-Value: ".$knopf; }
(...)
Wenn ich im Formular auf den "Ändern"-Knopf klicke, dann lande ich im Auswerte-Skript weder im ersten noch im zweiten IF-Zweig, sondern im letzten ELSE-Zweig. Der dann im Browser angezeigte Value der Variable $knopf ist aber "Ändern". Wenn ich mir den Quelltext anzeigen lasse, steht dort ein Ä, kein Ä. Aber ich weiß nicht, welche Kodierung angewendet wird. Offensichtlich ist das angezeigte Ä ein anderes Zeichen als das Ä, mit dem ich den String im ersten IF-Zweig vergleiche.
Ich hab beide PHP-Dateien als UTF-8 gespeichert und jeweils im Header die Angabe
<meta http-equiv="content-type" content="text/html; charset=utf-8">
untergebracht.
Mein Webhoster hat kürzlich auf UTF-8 umgestellt.
Vorher hat mein Skript funktioniert. Da hatte ich mir keinerlei Gedanken über die Kodierung gemacht, sondern es hat einfach so geklappt. Da hatte ich noch keine meta-Angabe im Header, und der Vergleich $knopf=="Ändern" ergab ein true.
Jetzt aber bin ich ratlos, wie ich überhaupt nur rauskriegen kann, welche Kodierung an welcher Stelle verwendet wird. Wie kann ich die Strings denn noch vergleichen, bzw. wie finde ich heraus, "welche Art von Ä" mir vom einen ans andere Skript übergeben wird?
formular.php:
(...)
<form name="Formular" action="bearbeiten.php" method="post">
(...)
<input name="knopf" type="submit" value="Ändern">
<input name="knopf" type="submit" value="Löschen">
</form>
(...)
bearbeiten.php:
(...)
$knopf = $_POST['knopf'];
if ($knopf == "Ändern")
{ echo "Ändern mit Umlaut"; }
else if ($knopf == "Ändern")
{ echo "Ändern mit HTML-Charakter"; }
else
{ echo "Knopf-Value: ".$knopf; }
(...)
Wenn ich im Formular auf den "Ändern"-Knopf klicke, dann lande ich im Auswerte-Skript weder im ersten noch im zweiten IF-Zweig, sondern im letzten ELSE-Zweig. Der dann im Browser angezeigte Value der Variable $knopf ist aber "Ändern". Wenn ich mir den Quelltext anzeigen lasse, steht dort ein Ä, kein Ä. Aber ich weiß nicht, welche Kodierung angewendet wird. Offensichtlich ist das angezeigte Ä ein anderes Zeichen als das Ä, mit dem ich den String im ersten IF-Zweig vergleiche.
Ich hab beide PHP-Dateien als UTF-8 gespeichert und jeweils im Header die Angabe
<meta http-equiv="content-type" content="text/html; charset=utf-8">
untergebracht.
Mein Webhoster hat kürzlich auf UTF-8 umgestellt.
Vorher hat mein Skript funktioniert. Da hatte ich mir keinerlei Gedanken über die Kodierung gemacht, sondern es hat einfach so geklappt. Da hatte ich noch keine meta-Angabe im Header, und der Vergleich $knopf=="Ändern" ergab ein true.
Jetzt aber bin ich ratlos, wie ich überhaupt nur rauskriegen kann, welche Kodierung an welcher Stelle verwendet wird. Wie kann ich die Strings denn noch vergleichen, bzw. wie finde ich heraus, "welche Art von Ä" mir vom einen ans andere Skript übergeben wird?
Kommentar