À partir de la la fonction API C de MySQL mysql_real_escape_string descriptif
:
Si vous avez besoin de changer le jeu de caractères de la connexion, vous devez utiliser le
mysql_set_character_set()fonction plutôt que d'exécuter unSET NAMES(ouSET CHARACTER SET) déclaration.mysql_set_character_set()fonctionne commeSET NAMESmais affecte également le jeu de caractères utilisé parmysql_real_escape_string(), quiSET NAMESpas.
N'utilisez donc pas SET NAMES /SET CHARACTER SET mais le mysql_set_charset de PHP
pour changer l'encodage car c'est la contrepartie du mysql_set_character_set de MySQL (voir code source de / ext/mysql/php_mysql.c
).