Encoding???
Mika99
- php
Hi,
habe folgendes Problem. Ich habe ein neuen Server mit PHP aufgesetzt. Alle Versendeformulare (Post per E-Mail) wandeln jetzt die Umlaute nicht mehr um. Es kommt also z.B. für
ein ü "ü" an. Für ein "ö" erscheint "ö". Woran kann das liegen? Hab ihc was vergessen einzukompilieren oder ist das eine Einstellungssache?
Mika
Hallo Mika99.
ein ü "ü" an. Für ein "ö" erscheint "ö". Woran kann das liegen? Hab ihc was vergessen einzukompilieren oder ist das eine Einstellungssache?
Irgendwo in deinem Skript befindet sich ein Aufruf der htmlentities-Funktion.
Einen schönen Donnerstag noch.
Gruß, Ash*feel free*ura
Gibt es da nicht auch standardmäßige EInstellungen in der php.ini???
Hallo Mika99.
Gibt es da nicht auch standardmäßige EInstellungen in der php.ini???
Soweit ich weiß nein.
Die anderen beiden Fragen kann ich leider nicht erkennen, tut mir leid.
Einen schönen Donnerstag noch.
Gruß, Ash*feel free*ura
Hi!
Alle Versendeformulare (Post per E-Mail) wandeln jetzt die Umlaute nicht mehr um.
Das liegt aber nicht am Encoding, sondern am Code - an deinem Code.
Egal, was für ein Encoding eingestellt ist, Zeichen werden dadurch nicht durch andere ersetzt.
Es kommt also z.B. für
ein ü "ü" an. Für ein "ö" erscheint "ö". Woran kann das liegen?
Weiß nicht. Irgendwo wirst Du sicher eine Funktion aufrufen, die dafür verantwortlich ist. Das könnte html_entities sein, oder str_replace oder eine regex-Funktion oder sonstwas.
Außerdem kommt mir die Frage ein wenig merkwürdig vor...
Was heißt denn "wandelt nicht mehr um"? Da wird doch was umgewandelt, wenn "ü" für ü erscheint...
Ah, nein. Jetzt hab ich es geschnallt...
Verschickst du den Krams denn dann als HTML-Mail oder als Textmail? Wenn in der Mail Zeichenmaskierungen statt den Umlauten stehen, dann hast Du den Content-Type der Mail vielleicht auf text/plain statt text/html stehen?
Gruß, rob
Hi nochmal,
anderes Beispiel.
Ich habe in der Datenbank ein Zeichen éééééééé gespeichert. Wenn ich das auslese und anzeige, dann verschwindet es einfach. Es ist gar nichts mehr da. Früher wurde es angezeigt, woran kann das liegen?
Mika
echo $begrüßung;
Früher wurde es angezeigt, woran kann das liegen?
Wahrscheinlich liegt es daran, dass wir früher einen Kaiser hatten.
Ja, ich weiß, dass diese Antwort genau so hilfreich war wie die Fragestellung. Um welches DB-System handelt es sich, welche Version wird verwendet? Lies in der Beschreibung deines Datenbanksystems nach, wie es in dieser Version mit Zeichenkodierungen umgeht und was du machen musst, damit der Client eine ihm genehme Zeichenkodierung beim Senden von Befehlen verwenden kann und auch Ergebnisse in einer ihm genehmen Kodierung zurückbekommt.
Die nächste Hürde tritt dann beim Verarbeiten der Daten im Client auf. In welcher Kodierung befindet sich das Dokument, in das die DB-Daten eingebettet werden? Welche Kodierung wurde in den Kopfdaten angegeben? Welche Kodierungsangabe liefert der Server? Alle drei Fragen sind wichtig.
Wenn du diese Fragen beantworten kannst, hast du eine Antwort auf deine obige Frage gefunden. Die Lösung des eigentlichen Problems ergibt sich dann automatisch.
echo "$verabschiedung $name";