• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

utf-8 Kodierung

Status
Für weitere Antworten geschlossen.

Atlan

Neues Mitglied
Hallo zusammen,

tut mir wirklich leid, dass ich ein Thema zu diesem viel besprochenen Thema öffnen muss, aber ich habe jetzt schon ein paar Stunden mich durch Foren-, Blogbeiträge und Tutorials gelesen, aber habe immernoch nicht die Lösung gefunden.

Mein Problem:
Sonderzeichen werden als Fragezeichen dargestellt und ein Formular schickt Sonderzeichen in den bekannten seltsamen Symbolen weiter.

Folgendes habe ich gemacht, um das zu verhindern:
im HTML:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
im PHP:
PHP:
ini_set('default_mimetype', 'text/html');
ini_set('default_charset', 'UTF-8');
in der Datenbank:
Kollation utf8_bin
Dreamweaver hat auch soweit ich das verstanden habe die Dateien in utf-8 dargestellt

Das seltsame ist , dass die Sonderzeichen einwandfrei funktionieren, solange sie nicht mit PHP per "echo" ausgegeben werden sondern direkt in den HTML-Teil eingegeben werden.

Was muss ich noch machen, damit endlich alles über utf-8 läuft?

Vielen Dank für die Antworten
MfG

Edit: Eine Sache habe ich noch vergessen.
Wenn ich im PHP folgendes definiere:
PHP:
ini_set('default_charset', 'ISO-8859-1');
dann funktioniert das mit den Sonderzeichen !?! Wie ist das zu erklären, wenn ich doch den Rest in UTF-8 habe?
 
Zuletzt bearbeitet:
Werbung:
Ach ja der gute Alte Dreamweaver...

Hatte das selbe Problem wie ich von Macromedia Dreamweaver (gott weiß welche Version) auf den neuen Adobe Dreamweaver CS4 umgestiegen bin...

Geh durch alle Dokumente die falsch dargestellt werden, und die irgendwie über include, require oder sonst iwas wie read() in verbindung stehen, und drücke STRG + J
Ganz unten müsste Kodierung stehen. Wenn das auf Westeuropäisch eingestellt ist, liegt der Fehler auf der Hand. Stelle auf UTF8 um. Und stelle die BOM Signatur aus, sonst gibt es Probleme mit einem zu frühen Output.

Wenn dass noch nicht hilft (bei mir bspw. bei der Funktion mail()) dann arbeite noch mit utf8_encode und decode.

Hoffe das ich dir helfen konnte

P.s. in den Voreinstellungen auf UTF8 umstellen hilft komischer weise bei neuen Dokumenten nicht oO
 
Hallo Atlan,

zunächst einmal, die Kollation in der Datenbank hat keinen Einfluss darauf, wie die Daten übermittelt werden, sondern die Kollation dient zur internen Sortierung der Daten.

Um UTF-8 Daten aus einer DB auszulesen, muss direkt nach dem Öffnen der Verbindung eine Anweisung (mysql_query) mit "SET NAMES 'utf8'" gesendet werden. Ausserdem empfiehlt es sich, im PHP Script einen entsprechenden Header zu senden:
PHP:
header( 'content-type: text/html; charset=utf-8' );
Natürlich bevor etwas ausgegeben wird. Falls "sonderbare" Zeichen in einem Formular erwartet werden, kann man dem Form-Tag noch ein ...
Code:
accept-charset="utf-8"
... mitgeben.

UTF-8 und PHP kann aber auch seine Tücken haben, wie Du hier nachlsenen kannst.
 
Werbung:
Vielen Dank für die Antworten!

Es lag tatsächlich an Dreamweaver, obwohl das bei den Voreinstellungen eigentlich auf UTF-8 eingestellt war... Da Funktioniert irgendwas bei den Voreinstellungen nicht richtig oder ich hab es an falscher Stelle eingestellt.

Danke auch für die Link, werd ich mir auf jeden Fall durchlesen!

MfG
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben