Siechfred: HTML-Form -> Unicode -> Datenbank

Beitrag lesen

Tag Christian.

ich habe da mal eine Frage bezüglich der Persistierung von
Unicode in eine MySQL-Datenbank:

Schönes Thema, an dem ich mir auch schon die Zähne ausbiss :-)

Ich habe eine HTML-Form (accept-charset="UTF-8"), mit der
ich zB folgenden String absende:

Hast du wirklich alles auf UTF-8 laufen? Ich verwende folgende Angaben:

Erste Zeile des PHP-Scripts:
header("Content-type: text/html; charset=utf-8");

Header-Zeile im HTML:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

Und natürlich das erwähnte accept-charset="UTF-8" im einleitenden form-Tag. Heraus kommt definitiv UTF-8. Zusätzlich verwende ich für meine Tabelle als Kollation "utf8_general_ci".

"й Дмитрий Дмитрий Дмитрий Дмитрий Дмитрий Дмитри
й Дмитрий Дмитрий Дмитрий Дмитрий Дмитрий Дмитри
Süddeutsche Länder"

Ich habe das jetzt mal getestet, es wird so, wie es da steht in meine DB eingetragen und auch von PHPmyAdmin so angezeigt, nicht der von dir erwähnte Zeichensalat.

S&uuml;ddeutsche L&auml;nder"

Aha, lässt du noch irgendwas anderes über den String laufen als trim()? Wie sieht denn der relevante PHP-Code aus, mittels dessen du die Formulareingaben in die DB schreibst? Ich verwende noch vor dem Speichern in der DB nach einem Tipp von dedlfix Folgendes:

$query = "SET NAMES utf8";  
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

Eine Erklärung zum Thema UTF-8 und mySQL gibt's auch noch hier:
http://dev.mysql.com/tech-resources/articles/4.1/unicode.html

Siechfred