Ralf: utf-8 Zeichen in latin1_general_ci Datenbank speichern

Beitrag lesen

Hallo,

ich muss eine Übergangslösung für ein bestehendes System basteln und an folgende Bedingenen mehr oder wenige gebunden:

  • Es gibt eine MySQL DB Tabelle deren Zeichensatz auf latin1_general_ci eingestellt ist.
  • nun gibt es eine Website deren header auf utf-8 gesetzt ist (header("Content-Type: text/html; charset=utf-8");). Auf dieser gibt es ein Formular welches seine Daten per POST an ein php Script schickt. Diese Daten müssen nun in der o.g. DB Tabelle gespeichert werden.

Bei deutschem Text (ink. Sonderzeichen) gibt es keine Probleme. Wohl aber bei z.B. bei kyrillischem Text.

Ich könnte jetzt die Tabelle mit ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; auf utf-8 aumstellen. Das würde wohl die Probleme lösen. Aber das ist mir nicht geheuer. Das bestehende System ist recht komplex und über viele Jahre von verschiedenen Leuten zusammen gebastelt worden. Wenn ich da Kollateralschaden anrichte bekomme ich mächtig Ärger.

Frage: (1) Was könnte es bzgl. anderer auf die gleiche Tabelle zugreifender Anwendungen für Nebeneffekte geben wenn ich die Tabelle auf utf-8 umstelle?

(2) Wie könnte ich die (z.B. kyrillischen) Sonderzeichen in meinem PHP Script so codieren, dass ich sie in der latin1_general_ci Tabelle speichern kann?

MfG
Ralf