Bonjour,
à quel moment faut-il insérer :
mysql_query("SET NAMES 'utf8'");
pour que cela soit efficace ?
Merci !
Paul
Bonjour,
à quel moment faut-il insérer :
mysql_query("SET NAMES 'utf8'");
pour que cela soit efficace ?
Merci !
Paul
au début d'une session avec un client UTF8.
Oui, ou juste avant une requête spécifique, tu n'es pas obligé de le faire pour toutes tes requêtes si tu n'en a pas besoin.
C'est valable pour l'ensemble de la session. Donc si je suis ton principe, le scénario serait le suivant :Envoyé par vallica
- j'ouvre ma session
- j'envoie un premier paquet de requêtes avec un mauvais jeu de caractères, mais je considère que ce n'est pas grave pour celles-là
- je fais mon SET NAMES UTF8
- j'envoie ma "requête spécifique"
- je continue le reste de ma session en UTF8
Franchement, je ne vois pas l'intérêt...
Bonjour,
La semaine dernière j'ai eu à faire un script dans lequel je devais importer en UTF-8 des données qui se trouvaient dans des tables hétérogènes niveau encodage.
Je ne suis pas un pro des charset, etc. mais j'avais des tables en latin1 et certaines en utf8_general_ci, et selon les requêtes je devais changer le SET NAMES pour que mon import aboutisse.
C'est dans ce sens là que j'ai posté cette réponse.
C'est là où est ton erreur : le SET NAMES indique avec quel jeu de caractères on envoie les données à MySQL, quel que soit le jeu utilisé dans la colonne cible.
Autrement dit, si j'envoie à MySQL des données UTF8 dans une table latin1, il fait automatiquement la conversion. Par contre, si je lui envoie des données UTF8 en faisant un SET NAMES latin1, je lui fais croire que mes données sont en latin1, donc il ne convertit plus et on se retrouve avec n'importe quoi...
Partager