Le problème vient de MySQL : on utilise l'encodage utf8, au lieu d'utf8mb4 (qui n'était pas encore disponible dans la version de MySQL utilisée lorsque la base de données à été créée). L'encodage utf8 de mysql ne permet de stocker des caractères utf-8 que s'ils sont sur 3 caractères au plus.
Pour passer en utf8mb4, le plus simple a l'air d'être de dumper la base de données, modifier le dump pour remplacer toutes les occurrences d'utf8 par utf8mb4 dans la structure (pas les données, à faire à la main donc), puis réimporter le tout. Il faut également modifier l'encodage utilisé pour les connexions à la base de données.
# MySQL...
Posté par Bruno Michel (site web personnel) . En réponse à l’entrée du suivi Problème avec les caractères unicode. Évalué à 7 (+0/-0). Dernière modification le 24 août 2014 à 21:21.
Le problème vient de MySQL : on utilise l'encodage utf8, au lieu d'utf8mb4 (qui n'était pas encore disponible dans la version de MySQL utilisée lorsque la base de données à été créée). L'encodage utf8 de mysql ne permet de stocker des caractères utf-8 que s'ils sont sur 3 caractères au plus.
Pour passer en utf8mb4, le plus simple a l'air d'être de dumper la base de données, modifier le dump pour remplacer toutes les occurrences d'utf8 par utf8mb4 dans la structure (pas les données, à faire à la main donc), puis réimporter le tout. Il faut également modifier l'encodage utilisé pour les connexions à la base de données.