mysql_set_charset()
serait une option - mais une option limitée au ext/mysql
. Pour ext/mysqli
c'est mysqli_set_charset
et pour PDO
::mysql
vous devez spécifier un paramètre de connexion.
Comme l'utilisation de cette fonction entraîne un appel à l'API MySQL, elle doit être considérée comme beaucoup plus rapide que l'émission d'une requête.
En ce qui concerne les performances, le moyen le plus rapide d'assurer une communication basée sur UTF-8 entre votre script et le serveur MySQL est de configurer correctement le serveur MySQL. Comme SET NAMES x
est équivalent
à
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
alors que SET character_set_connection = x
exécute également en interne SET collation_connection = <<default_collation_of_character_set_x>>
vous pouvez également définir ces variables de serveur
statiquement dans votre my.ini/cnf
.
Soyez conscient des problèmes possibles avec d'autres applications exécutées sur la même instance de serveur MySQL et nécessitant un autre jeu de caractères.