echo $begrüßung;
ich hab folgendes merkwuerdiges Problem. Ich habe eine Textdatei in der HTML Code steht. Leider werden beim export aus einem Programm mit dem Namen Endnote nicht die Umlaute/Sonderzeichen in HTML Code exportiert.
Warum sollten sie? Ist etwa außerdem die verwendete Zeichenkodierung nicht angegeben worden?
Daher lese ich die Datei ueber folgenden Code ein und versuche die Umlaute/Sonderzeichen selber zu ersetzen:
$raw = array("ä","ö","ü","Ä","Ö","Ü","ó","ß"," & ", "ó","é");
In welcher Kodierung liegen die Eingangsdaten vor? Welche Kodierung verwendest du für dein Script?
Das Merkwuerdige ist nun das keines der Umlaute/Sonderzeichen gefunden und ersetzt wird.
Wird daran liegen, dass keine Übereinstimmung zustande kommt. Beispielsweise verwenden UTF-8 und ISO-8859-1 nur die ersten 128 Bytewerte gemeinsam, und die Umlaute liegen außerhalb davon.
Was komischerweise teilweise geht ist wenn ich utf8_decode auf den String anwende, jedoch wird mit dann zu beginn ein ? mit einer Leerzeile ausgegeben
Das kann daran liegen, dass da ein Zeichen nicht richtig UTF-8-kodiert ist. Kann aber auch andere Ursachen haben. Ein Hexdump sollte Aufschluss geben.
ausserdem werden so alle bis auf ein Sonderzeichen ein S mit einem umgedrehten Dach (vielleicht ein Buchstabe aus dem Osten?) ersetzt.
Das Zeichen Š kommt in ISO-8859-1 nicht vor, kann also nicht von UTF-8 nach ISO-8859-1 umkodiert werden.
Wenn es keine Möglichkeit gibt, die verwendete Kodierung beizubehalten - was immer der bevorzugte Weg sein sollte - wäre es günstig, du schaust dir die Funktion htmlentities() an, und da auch mal die optionalen Parameter jenseits der ersten Stelle.
echo "$verabschiedung $name";