Dabei seit: 15.09.2006 Ort: Pforzheim Alter: 29 Geschlecht:
Verfasst Mi 12.12.2007 12:28 Titel
PHP mysql .. mal wieder Umlaute - ich verzweifele jetzt echt
Hallo liebe Genossinen und Genossen *fg*
Ich verzweifle jetzt echt .. ok moment .. ich rauch erstmal eine ...
...
SO!
Ich hab hier so ein Script das will mir keine Umlaute darstellen - bzw. die Datenbank nimmt auch keine Umlaute an. Darin werden nur wirre Zeichen gespeichert. Ich habs mit ISO..1 und UTF-8 probiert. Will nicht.
Momentan auf ISO gestellt.
eingepflanzt. Nun sehe ich das wenigstens die Kodierung im Script und DB einheitlich sind. Denn nun werden mir wenn ich Umlaute per POST absende diese auch als wirre Zeichen dargestellt :)
$sql_update_a = "UPDATE user_profildaten SET a_begruessung = '$insertit' WHERE id_user = $fremduser_id";
mysql_query($sql_update_a);
echo $insertit;
?>
</body>
</header>
</html>
Wie man sieht versuchte ich auch schon mittels str_replace die Umlaute umzuformen .. aber es muss doch verdammt nochmal möglich sein einfach die Umlaute in die Datenbank zu schreiben.
Wenn ich in der Datenbank einen Text MIT Umlaute speichere, macht er das doch auch richtig und gibt sie auch richtig im Dokument aus.
Bitte bitte ich weis nicht mehr weiter grad..
Zuletzt bearbeitet von alecsk am Mi 12.12.2007 13:14, insgesamt 1-mal bearbeitet
Dabei seit: 24.10.2007 Ort: - Alter: - Geschlecht: -
Verfasst Mi 12.12.2007 13:02 Titel
Tjo, eigentlich kein Problem, die Datenbank nimmt einen Bytestream an, die interessiert dabei die Zeichencodierung nicht die Bohne...
Du Verwendest unterschiedliche ISO-Charsets im http-header deiner Seite und im meta-tag. Ich weiß im Einzelfall nicht, welchem der Browser den Vorzug gibt.
Trotzdem sollte auch das mit der Formulardatenübermittlung nichts zu tun haben. Du kannst im <form>-Tag ein Attribut accept-charset verwenden, in dem du explizit nur bestimmte Zeichensätze zulässt (natürlich wieder Browserabhängig).
Eigentlich ist das eh alles Backe. Benutze Unicode (utf-8 ), und deine Probleme sollten ein Ende haben.
Ach ja, schau dir mal die funktion htmlentities() an. Dennoch würde ich Umlaute nicht maskieren, bevor du sie in die Datenbank hackst. Ein einfaches mysql_(real)_escape_string() würde schon reichen, Voraussetzung: Die php.ini-Einstellung magic_quotes_gpc steht auf 0/off (was eigentlich mittlerweile Standard sein sollte, da dieser Hack in künftigen PHP-Versionen eh entfallen wird).
Also die Roh-Daten immer schön sp wie sie sind abspeichern, aufbereiten kannst du sie für die spätere Ausgabe immer noch (bspw. html-eigene Zeichen/tags escapen etc.).
Zuletzt bearbeitet von bacon am Mi 12.12.2007 13:06, insgesamt 3-mal bearbeitet
Dabei seit: 15.09.2006 Ort: Pforzheim Alter: 29 Geschlecht:
Verfasst Mi 12.12.2007 13:13 Titel
ich verstehe nur nicht warum ich in der DB ein Ä eingeben kann und dieses auch als Ä ausgegeben wird .. hm ..
mit UTF-8 hab ich ja auch schon rugewurschtelt - das will auch nicht ... str_replace bei Umlauten igoriert er auch ..
ich probiere es aber nun auch nochmal .. also alles UTF-8 .. ich wette aber es geht wieder nicht! *g*
Im übrigen kann ich per Form nichts weiter übergeben - ich verwende jQuery jEditabel - der sendet das von JS als POST. Aber ich meld mich nochmal wenn ichs per UTF-8 habe wenn es sich denn nicht vermeiden lässt :(
Bin enttäuscht das in dieser modernen Welt solche Dinge immernoch nicht auf Anhieb funktionieren :(
Dabei seit: 22.05.2003 Ort: Texas Alter: 28 Geschlecht:
Verfasst Mi 12.12.2007 13:30 Titel
alecsk hat geschrieben:
Im übrigen kann ich per Form nichts weiter übergeben - ich verwende jQuery jEditabel - der sendet das von JS als POST. Aber ich meld mich nochmal wenn ichs per UTF-8 habe wenn es sich denn nicht vermeiden lässt
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.