Ich schreibe eine kleine Datenbankanwendung, die russische Sprache in die Datenbank (mysql) abspeichert. In HTML hab ich eingestellt.
Wenn ich Daten aus eine Formular (method=post) über php in die Datenbank abspeichere werden die Zeichen in irgendeiner anderen Kodierung abgespeichert. sieht so aus: ывапывапвпа also unlesbar.
Meine Frage: Wie soll ich es einstellen dass die kyrillischen Buchstaben so abgespeichert (und später herausgelesen) werden, dass sie überall in gleichen Kodierung gespeichert werden?
Hab schon versucht in der mysql Kollation auf utf-8 gestellt - ohne Erfolg.
ich habe bei mir kein local.php… wo soll ich diese Dastei finden? Es ist nicht mein eigener Server, sondern shared von hosteurope. Ich hab da kein zugriff auf php einstellungen. Zumindest die von denen ich so kenne. Bin leider kein großer experete darin.
Den Link hab ich auch gelesen, bevor ich gepostet hab. Daher hab ich ja utf-8 in HTML und in Kollation von MYSQL eingestellt. Trotzdem macht er falsche Kodierung.
Ausser dass ich eine eigene Routine zur Übersetzung der Zeichen programmieren muss was sehr umständlich ist, sehe ich kein Ausweg. Vieleicht hab ich was übersehen?
also in HTML auf UTF-8 gestellt
In Browser auf utf-8
Kollation von Mysql über myphpadmin eingestellt.
Das Problem ist, dass neben der Ausgabe-Formatierung im HTML und der Datenbank auch noch die Tabelle selbst, die jeweiligen Felder und vor Allem die Verbindung zum MySQL-Server die korrekten Character-Sets verwenden. Entweder stellt man das mit SET NAMES ‚utf8‘; ein, so wie es bereits gesagt wurde oder man konfiguriert den MySQL-Server so, dass standardmäßig utf8-Verbindungen verwendet werden.
SET NAMES ‚utf8‘; entspricht dabei einfach nur folgenden SQL-Befehlen:
SET character_set_client=‚utf8‘;
SET character_set_connection=‚utf8‘;
SET character_set_results=‚utf8‘;
Zusätzlich kann zur Laufzeit auch die Collation noch angepasst werden:
SET collation_connection=‚utf8_general_ci‘;
SET collation_database=‚utf8_general_ci‘;
Einfacher wäre es allerdings - sofern möglich - die Einstellungen des Servers zu manipulieren, damit nicht bei jedem Seitenaufruf bzw. bei jeder Verbindung zum MySQL-Server zumindest die drei ersten Befehle ausgeführt werden müssen (SET NAMES führt ja zu den drei Befehlen und ist nur eine Kurzform). Bei stark frequentierten Seiten kann das durchaus ein Optimierungs-Punkt sein.