Seite 1 von 1

"Kaputte" Umlaute!

Verfasst: 15.02.2007, 01:40
von VoinG
Hallo!
Die Frage ist seltsam, ich bin total ratlos...
Also, alles fängt damit an, dass ich ganz normal ein Formular "an sich selbst" schicke

Code: Alles auswählen

<form action="<?php echo htmlspecialchars&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;; ?>" method="get">
Ja, ok, ich erwähne noch, dass ich utf-8 als Zeichensatz habe.

Code: Alles auswählen

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
In diesem Formular habe ich ein Feld, das ich in $wert speichere

Code: Alles auswählen

$wert=$_REQUEST&#91;'Eingabe'&#93;;
Und ich möchte alle Umlaute, sagen wir, eliminieren, oder etwas anderes damit machen, egal.
Ich erzähle nicht die ganze Geschichte, ist ziemlich langweilig, aber ich habe durch Testen entdeckt, dass ich ganz komische Umlaute durch PHP in die Variable $wert bekomme. Keine PHP-Funktion funktioniert damit! Nicht mal str_replace() oder htmlspecialchars() oder htmlentities() :o

Das kann ich bestätigen. Schaut mal selbst:

Code: Alles auswählen

$umlaute = array&#40;"ä", "ö", "ü"&#41;;
$keineuml = array&#40;"1", "2", "3"&#41;;
$newwert = str_replace&#40;$umlaute, $keineuml, $wert&#41;;
///funktioniert nicht, ich bekomme wieder "abcäöü"

aber das hier&#58;

$umlaute = array&#40;"ä", "ö", "ü"&#41;;
$keineuml = array&#40;"1", "2", "3"&#41;;
$newwert = str_replace&#40;$umlaute, $keineuml, "abcäöü"&#41;;
///funktioniert doch, ich bekomme wie gewollt "abc123"
					

Dasselbe mit 

$spwert=htmlspecialchars&#40;"üüü"&#41;; //funktioniert
$spwert=htmlspecialchars&#40;$wert&#41;; //funktioniert nicht!
usw...
Also, irgendwas stimmt mit $wert nicht, aber was kann das sein? Bei

Code: Alles auswählen

echo $wert; 
bekomme ich ganz normal "abcäöü", im Seitenquelltext sieht man auch abcäöü...

Ich bin total ratlos, was kann die Ursache sein?
Vielen Dank im Voraus!

Verfasst:
von

Verfasst: 15.02.2007, 02:05
von Michael1967
Und so geht auch nicht -

Code: Alles auswählen

$wert = str_replace &#40; array &#40; 'ö'&#41;, array &#40; 'oe'&#41;, $wert &#41;;

Verfasst: 15.02.2007, 02:16
von VoinG
:( :( Nein, so auch nicht... Bekomme wie früher 'ö' statt 'oe'

Verfasst:
von

Verfasst: 15.02.2007, 02:21
von Michael1967
echo $wert;

steht nach der Zeile?

Verfasst: 15.02.2007, 02:28
von VoinG
Hab jetzt nicht ganz verstanden, nach welcher Zeile? So steht es bei mir:

Code: Alles auswählen

$extrawert = str_replace &#40; array &#40; 'ö'&#41;, array &#40; 'oe'&#41;, $wert &#41;;
echo $extrawert;
Übrigens, das funktioniert auch nicht:

Code: Alles auswählen

for &#40;$a=0; $a<$laenge; $a++&#41;
             		&#123;
             			$zeichen=substr&#40;$wert, $a, 1&#41;;

             			if &#40;$zeichen=="ö"&#41;
             				&#123;.....&#125;&#125;

Problem gelöst

Verfasst: 15.02.2007, 03:28
von VoinG
Ich hab's endlich, nach 3 Tagen... Windows Editor hat mir geholfen :D Das Problem bestand darin, dass die php-Datei von meinem Editor nicht als "utf-8" sondern keine Ahnung wie gespeichert wurde!!! So ein Mist. Ich hab's mit Notepad geöffnet und "richtig" gespeichert, nun funktioniert es! Fast 3 Tage habe ich dafür gebraucht :lol:

Vielen Dank für die Hilfe!

Verfasst: 15.02.2007, 09:09
von Keyser Soze
Das hätte ich dir jetzt auch sofort vorgeschlagen (habe es aber eben erst gelesen). Dieses Problem hatte ich auch schon desöfteren. Ich kann hier den Texteditor UltraEdit sehr empfehlen, da kann man sehr bequem über das Menü zwischen sämtlichen Zeichensätzen konvertieren (UTF-8, DOS, Mac, ASCII, Unicode etc).