dedlfix: Sonderzeichen und latin1

Beitrag lesen

Hi!

  1. DB mit phpmyAdmin exportieren
  2. Sortierreihenfolge im Dump auf utf-8_general_ci ändern
  3. Default charset im Dump auf utf-8 ändern
  4. DB löschen
  5. Generelle Sortierreihenfolge über phpmyAdmin auf utf-8_general_ci einstellen
  6. Dump einspielen

Wenn der PMA bereits alles richtig anzeigt, kannst du einfach die betreffenden (String-)Felder umstellen (Kollation ändern. Es gibt auch eine ALTER-TABLE-Syntax, die alle Felder in einem Rutsch ändert). MySQL nimmt dabei eine Umkodierung vor. (Datenbank- bzw. Tabelleneinstellungen sind nur Default-Werte für neu anzulegende Tabellen bzw. Felder. Eine Änderung beeindruckt bestehende Felder nicht.)

Wenn der PMA Fehler anzeigt, dann passt die tatsächliche Kodierung nicht zur Feldeinstellung. Eine Reparatur ist abhängig von der Art des Fehlers und in manchen Fällen auch nicht möglich.

  1. Generelle Sortierreihenfolge über phpmyAdmin auf utf-8_general_ci einstellen

Das kannst du über den PMA nicht ändern, das geht nur in der Serverkonfigurationsdatei selbst. Wenn du damit jedoch die Einstellung auf PMAs Startseite meinst, dann ist das nur ein Wert für den PMA selbst und betrifft seine Verbindungen zum DBMS, aber keinerlei Daten dort und auch keine Verbindungen zwischen anderen Clients und MySQL.

  1. header('Content-Type: text/html; charset=utf-8');
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Passt.

  1. Alle DB-Verbindungen mit SET NAMES 'utf8' versehen

Abgesehen davon, dass man bei SET NAMES die Anführungszeichen um das utf8 weglassen kann - hast du kein aktuelles PHP, bei dem mysql_set_charset() zur Verfügung steht? Alternativ kannst du auch die mysqli-Extension (und mysqli_set_charset() / mysqli::set_charset()) verwenden, wenn vorhanden.

  1. Alle php-Dateien, die Ausgabetext beinhalten in utf-8 neu speichern
    Frage 2: Gibt es zu Punkt 10 ein Programm, dass das in einem batch kann???

iconv unter Linux/Cygwin.

Lo!