Já migrei para outro servidor diversas vezes mas nunca tive esse problema. Nenhuma das soluções possíveis funciona e os caracteres utf-8 aparecem incorretamente no PHP-FPM.
O que eu tentei:
ALTER DATABASE database2 CHARACTER SET utf8;
Arquivo editado my.conf
e linhas adicionadas:
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Tentei alterar os conjuntos de caracteres do banco de dados e tabelas - absolutamente nenhum efeito.
E é claro que tenho <meta http-equiv="content-type" content="text/html; charset=UTF-8">
em<head>
Reiniciei o mysql, mysqld após fazer alterações. Mas não vejo absolutamente nenhuma alteração e os caracteres utf-8 ainda aparecem incorretamente. Os caracteres Utf-8 dos registros antigos aparecem incorretamente em todos os casos. Nas novas entradas, por exemplo, os caracteres espanhóis aparecem corretamente, mas os caracteres checos, letões, etc., transformam-se em pontos de interrogação. Mas é claro que também preciso que os registros antigos sejam exibidos corretamente.
Esta é a configuração do servidor antigo e novo. Como você pode ver, há apenas uma diferença - conjunto de caracteres do servidor, mas como escrevi antes, alterá-lo não tem efeito.