8722 sujets

Développement web côté serveur, CMS

Bonsoir,
Je me traîne depuis ce matin un problème de jeu de caractères entre mon code php et ma base de données Smiley bawling .
- Mon code php récupère (avec simple_html_dom) une autre page web. L'autre page est codée en Windows-1252 ... déjà çà part mal. Je pense que j'ai réussi à résoudre le problème de l'import en utilisant
htmlentities($tmp,ENT_QUOTES,'UTF-8');

en tout cas à l'affichage php me renvoie une page avec des caractères corrects (ma page est en utf-8). Je fais donc l'hypothese que l'import et la transformation en UTF-8 se sont bien passés.

Ensuite je prends une partie du texte récupéré et je l'enregistre dans une table de ma base mysql.
- Si j'affiche la commande SQL (par un echo dans mon php) tout est ok, les caractères sont corrects (par exemple les caractères €)
- mais si je vérifie ce qu'il y a dans mon enregistrement, j'ai des caractères ? à la place de '€', de '-' etc ...
- qu'est-ce qu'il y a bien pu se passer entre ma commande php et mon mySQL ? sachant que si je reprends la même commande que ci-dessus, mais à la main (dans phpmysql), çà passe niquel, ce qui me fait dire que ma table et en particulier le champ texte en question sont bien configurés eux aussi.

MErci pour vos éventuels conseils, les trucs à vérifier ou vos témoignages de problèmes similaires ... je me sentirais moins seul
Modifié par Zebrou (04 Nov 2013 - 08:06)
Tu n'aurais pas oublié d'envoyer la commande "set names utf8" par hasard ?
C'est la première commande à envoyer à MySQL juste après la connexion si tu travailles en UTF-8.
Oui çà à l'air de venir de là !! Merci beaucoup, je ne savais pas du tout qu'il fallait renvoyer la commande à chaque connexion.