He migrado a otro servidor muchas veces pero nunca tuve este problema. Ninguna de las posibles soluciones funciona y los caracteres utf-8 aparecen incorrectamente en PHP-FPM.
Lo que probé:
ALTER DATABASE database2 CHARACTER SET utf8;
Archivo editado my.conf
y líneas agregadas:
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Intenté cambiar los juegos de caracteres para la base de datos y las tablas, sin ningún efecto.
Y por supuesto tengo <meta http-equiv="content-type" content="text/html; charset=UTF-8">
en<head>
Reinicié mysql, mysqld después de realizar cambios. Pero no veo ningún cambio y los caracteres utf-8 siguen apareciendo incorrectamente. Los caracteres Utf-8 de los registros antiguos aparecen incorrectamente en todos los casos. En las nuevas entradas, por ejemplo, los caracteres españoles aparecen correctamente, pero los caracteres checos, letones, etc. se convierten en signos de interrogación. Pero, por supuesto, también necesito que los registros antiguos se muestren correctamente.
Esta es la configuración del servidor antigua y nueva. Como puede ver, solo hay una diferencia: el conjunto de caracteres del servidor, pero como escribí antes, cambiarlo no tiene ningún efecto.