Hallo,
ich bin immer noch beim Relaunch der o.g. Seite, dabei möchte ich u.a. die Codierung der Seite und Datenbank ändern, von Latin1/ISO-8859-1 zu UTF8. Da sich einiges an der Datenstruktur ändert, lese ich die aktuelle Datenbank ein und schreibe die geänderten Daten in eine neue Datenbank. Die relevanten Zeilen:
$dsn_alt = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=latin1';
$dsn_neu = 'mysql:host=' . DB_HOST . ';dbname=drarbeit;charset=utf8mb4';
$db_alt = new PDO($dsn_alt, DB_USER, DB_PASS, $opt);
$db_neu = new PDO($dsn_neu, DB_USER, DB_PASS, $opt);
$value = mb_convert_encoding($value, "UTF-8", "ISO-8859-1");
Leider werden nicht alle Zeichen korrekt umgewandelt und ich finde das Problem nicht. Ein Beispiel (Absatz "Beschreibung"):
Aktuelles Angebot: http://drarbeit.de/drarbeit/php/arch_get.php?angebot=nr14680
Nach Umwandlung: http://drarbeit.de/test.html
Ich vermute, dass viele Nutzer ihren Text einfach aus Word per copy&paste einfügen, dabei werden diese Aufzählungszeichen mitgenommen.
Hat jemand eine Idee, warum die nicht richtig umgewandelt werden bzw. wie ich das hinbekomme?
Viele Grüße Daniel