27apricot
Erfahrenes Mitglied
Hallo,
ich finde irgendwie keinen Weg in eine vollständige Kontrolle darüber, was ein PHP-Script, das Daten in eine MySQL-DB schreibt, mit Sonderzeichen anstellt.
Meine Erfahrungen bisher sind, dass offensichtlich sowohl Browser als auch Server darauf Einfluss haben. Bei einem meiner Projekte habe ich uncodierte Sonderzeichen eingegeben, die es dann als HTML-Entities in die Datenbank geschrieben hat. Bei einem anderen Benutzer hat es die gleichen Zeichen nicht übersetzt. In einem anderen Projekt ist es genau anders herum. Hier werden bei einem anderen Benutzer auch z.B. die französischen Anführungszeichen -- »« -- codiert in ihrem ASCII-Code eingetragen. Wenn ich diese eingebe, passiert keine Umwandlung. Der Zeichensatz, den ich in der Index-Datei definiert habe, ist ISO-8859-1, der diese Anführungszeichen enthält.
Bei einem weiteren Projekt habe ich jetzt versucht, im verarbeitenden Script mit htmlentities() zu arbeiten. Wenn ich das tue, schreibt es einen Gedankenstrich als – in die DB. Es wurde also, bevor die Funktion greift, schon der Gedankenstrich codiert, so dass die Funktion ein Ampersand übergeben bekommt, den sie selbstverständlich nochmals umwandelt.
Außerdem: wenn ich als Zeichensatz in der Index-Datei UTF-8 definiere, dass ja wohl alle gebräuchlichen Zeichen enthält, werden die deutschen Umlaute, die uncodiert in der HTML-Datei stehen, nicht mehr angezeigt.
Ich bin ratlos. Vielleicht kann mir ja jemand helfen.
Danke und schöne Grüße:
27apricot.
ich finde irgendwie keinen Weg in eine vollständige Kontrolle darüber, was ein PHP-Script, das Daten in eine MySQL-DB schreibt, mit Sonderzeichen anstellt.
Meine Erfahrungen bisher sind, dass offensichtlich sowohl Browser als auch Server darauf Einfluss haben. Bei einem meiner Projekte habe ich uncodierte Sonderzeichen eingegeben, die es dann als HTML-Entities in die Datenbank geschrieben hat. Bei einem anderen Benutzer hat es die gleichen Zeichen nicht übersetzt. In einem anderen Projekt ist es genau anders herum. Hier werden bei einem anderen Benutzer auch z.B. die französischen Anführungszeichen -- »« -- codiert in ihrem ASCII-Code eingetragen. Wenn ich diese eingebe, passiert keine Umwandlung. Der Zeichensatz, den ich in der Index-Datei definiert habe, ist ISO-8859-1, der diese Anführungszeichen enthält.
Bei einem weiteren Projekt habe ich jetzt versucht, im verarbeitenden Script mit htmlentities() zu arbeiten. Wenn ich das tue, schreibt es einen Gedankenstrich als – in die DB. Es wurde also, bevor die Funktion greift, schon der Gedankenstrich codiert, so dass die Funktion ein Ampersand übergeben bekommt, den sie selbstverständlich nochmals umwandelt.
Außerdem: wenn ich als Zeichensatz in der Index-Datei UTF-8 definiere, dass ja wohl alle gebräuchlichen Zeichen enthält, werden die deutschen Umlaute, die uncodiert in der HTML-Datei stehen, nicht mehr angezeigt.
Ich bin ratlos. Vielleicht kann mir ja jemand helfen.
Danke und schöne Grüße:
27apricot.
Zuletzt bearbeitet: