Neuigkeiten:

still alive...

Hauptmenü

Umlaute

Begonnen von kulesza, 08. Januar 2007, 09:26:40

Vorheriges Thema - Nächstes Thema

kulesza

Guten Tag!
Wie kann man Umlaute aus einer MYSQL Datenbank in ein HTML Formular oder umgekehrt übertagen?

roosegfb

Aufpassen das Tabellenfeld und Webseite den gleichen Zeichensatz nutzen. Das wars eigentlich schon. Gibts
dennoch Probleme, dann nach öffnen der Verbindung noch ein \"SET NAMES \" absetzen.
Ich persönlich halte fast alles in utf-8 ... da passt fast alles rein. Auch nen Euro Zeichen oder hässliche
MS Word Gedankenstriche.

kulesza

In den Tabellen wurde Column Charset auf utf-8 und Collumn Collate auf utf8_general_ciesetzt. Funktioniert immer noch nicht. Was sollte im HTML-Dokument stehen damit beide den gleichen Zeichensatz nutzen?

roosegfb

im HTML:
in PHP nach öffnen der DB: $db->query(\"SET NAMES \'utf8\'\");
in PHP vor der Ausgabe: header(\"Content-type: text/html; charset=UTF-8\");
Viel Erfolg!

kulesza

Der Meta-Tag steht drin.
Aber $db->query(\"SET NAMES \'utf8\'\"); ergibt einen Fehler. (Fatal error)
Das mit dem header sicherlich auch.
Wie sollen die beiden Zeilen im Code untergebracht sein?

roosegfb

$db ist dein mysqli objekt. Falls Du noch mit mysql arbeitest heisst es:
mysql_query(\"SET NAMES \'utf8\'\");
Ich weiß nicht ab wann \"SET NAMES\" in mysql drin ist. Falls es nicht
klappt probiers ohne die Zeile. Je nach Einstellung klappts auch ohne.
header rufst Du vor der ersten Ausgabe im PHP auf. Falls
Du stehts html ausgibst dann ganz oben <?php header(....

kulesza

Es funktioniert.
Danke.

im HTML: [/quote]
Brr. Lass das bitte den Server machen.

roosegfb

Browser und Server müssen den content-type übermitteln. Das Metatag ist W3C Pflicht
für XHTML und HTML 4.01.

Browser und Server müssen den content-type übermitteln.[/quote]
Unsinn. RFC 2616, Section 7.1.2 sagt ganz klar, dass der Content-Type-Header empfohlen wird (SHOULD, nach RFC 2119). Browser senden übrigens Accept-*-Header. Clients sollen, wenn kein Content-Type angegeben ist, ISO-8559-1 verwenden.
Das Metatag ist W3C Pflicht für XHTML und HTML 4.01.[/quote]
Abschnitt 5.2.2 der HTML-Spezifikation empfiehlt, die Angabe als Header vom Server ausliefern zu lassen. Ansonsten steht da klar:
The HTTP protocol ([RFC2616], section 3.7.1) mentions ISO-8859-1 as a default character encoding when the \"charset\" parameter is absent from the \"Content-Type\" header field. In practice, this recommendation has proved useless because some servers don\\\'t allow a \"charset\" parameter to be sent, and others may not be configured to send the parameter. Therefore, user agents must not assume any default value for the \"charset\" parameter.[/quote]
Hierzu sei noch gesagt, dass nicht alle Benutzeragenten mit Meta-Angaben für den Content-Type klar kommen und wenn, dann sollte man diese als erstes Kindelement von  setzen.
RTFM.

all your base are belong to us