Originally Posted by Zarzal
At this point all new text is stored in utf-8 and all old text show a black square ? for a non utf-8 char. The next step ist working inside the table and replace all non utf-8 chars with the correct utf-8 chars. This could be pain and need some experience with phpmyadmin, export and import tables and find the proper chars. I have done it with my board and now I hope I have no problems again.
The SQL statement you used in the linked thread is already converting all existing ISO-8859-1 data to UTF-8:
Code
ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
You see broken characters because your default database connection is still using Latin1 as default. So basically, you replaced all UTF-8 characters with Latin1 encoded ones.

In attachment a screenshot of the encoding problem using an utf8_general_ci table. The first posted is actually using the wrong (default) Latin1 encoding while the second posting is using the proper UTF-8 encoding. See the difference? This is how UTF-8 data is supposed to look like in a database.

To enable UTF-8 database encoding support, you need to add the mysqli_set_charset( $this->dbh, "utf8" ); line to function connect in libs/mysqli.inc.php. However, this will only work with UTF-8 encoded UTF-8 data in utf8_general_ci tables. Any Latin1 encoded UTF-8 data will break in this mode.

This article is a good summary and explains the problem:
https://www.whitesmith.co/blog/latin1-to-utf8/

Attachments
latin1utf8.png