2010-11-30 13 views
10

Ich muss eine russische Version einer Website machen, aber ich kann nicht herausfinden, wie russische Zeichen in die Datenbank eingefügt werden.MySQL - Russische Zeichen Anzeige incorrectly

tryed ich fast jede mögliche Codierung, aber es zeigt nur:

???????? ?????????? ??????? ??????? ? ????? ?? ????????????? ? ???????, ??????? ????? ??????? ???????? ????? .??? ??????????? ???????? ????? ?? ????? ?????????? ? ????? ????????. 
??????????? ?????? ?? ???????? ????? ?? 20 ???????. ???????? ??? ?? ??????????? ?????????????? ????? ? ????????????? ??????? ??????. ? ???????, ? ??????? ? ?.?. 
+0

Was ist die Codierung für die Datenbank? und wo willst du zeigen? – Vjy

+0

UTF8_general_ci – Mike

+0

Woher kommt Ihre Ausgabe? Die Daten durchlaufen verschiedene Schichten. Hier ist ein Link zu ähnlichen Fragen, so dass Sie die verschiedenen Parameter sehen können, die mysql beeinflusst wird http://stackoverflow.com/questions/3823278/fixing-encondings – Unreason

Antwort

13
  1. Sicherstellen, dass die Datenbank charset/coallition ist UTF-8
  2. Auf der Seite findet man diese russischen Zeichen einzufügen (die Form , Textarea), stellen Sie sicher, dass die Codierung UTF-8 ist, indem Sie Content-Type auf text/html; charset=utf-8 setzen. Geben Sie den russischen Text direkt in die Formulareingabe ein.
  3. Auf der Verarbeitungsseite, die dieses Formular behandelt, die es in die Datenbank einfügt, stellen Sie sicher SET NAMES utf8, so dass es als UTF-8 vor gespeichert wird, fügen Sie die Daten in einer separaten Abfrage im Voraus ein.
  4. Wenn Sie den Inhalt aus der Datenbank in einer Ansicht rendern, stellen Sie sicher, dass Content-Typetext/html; charset=utf-8 ist.

Stellen Sie sicher, dass der Content-Type ist nicht Windows-1251 oder iso-8859-1/latin1. Stellen Sie sicher, dass die Datenbank charset/coallition NICHT ISO-8859-1/Latin1 ist.

+2

Ok, die wichtige Phrase Ihrer Antwort Weg "sicher" .. :-) Ich hatte UTF-8 auf der DB und den Tabellen, aber was ich herausgefunden habe, dass ich die Codierung zu Latin2 auf den Spalten fixiert hatte. Vielen Dank. :-) – Mike

+2

Du meinst sicher "Collation", nicht "Coallition" – Alexxus