[résolu] recupération de flux xml et erreur encodage des caractères

WRInaute occasionnel
Bonjour,

J'ai un soucis, je récupère via SimpleXMLElement un flux de produit que j'importe dans une base de données, prestashop pour tout dire. J'attaque les tables directement via mes propres scripts sans passer par les fonctions de presta dans un soucis de performance.

Mon soucis est le suivant :

- J'ai un flux XML déclaré en <?xml version='1.0' encoding='ISO-8859-1'?> si je l'ouvre avec notepad++ je constate bien un encodage ansi
- Tous mes fichiers php qui gèrent le flux sont encodés en utf8 sans bom
- les tables prestashop sont bien en utf8 (utf8 general ci)

que je fasse :

Code:
$nom_produit = mysql_real_escape_string($produit->nombre);
ou
Code:
$nom_produit = mysql_real_escape_string(utf8_encode ($produit->nombre));
ou même, quand le logique ne fonctionne pas on essai l'illogique
Code:
$nom_produit = mysql_real_escape_string(utf8_decode ($produit->nombre));

Je me retrouve avec exactement la même entrée en base de données contenant le même problème d'encodage des accents :

Câche-tétons Sequins noir

Je deviens fou, je toi louper un truc c'est pas possible.

Une idée ?

Merci d'avance pour votre aide.
 
WRInaute occasionnel
Re: recupération de flux xml et erreur encodage des caractères

Problème résolu en encodant la connexion mysql :

Code:
mysql_set_charset( 'utf8' );

et en n'encodant pas le texte tiré du flux avec utf8_encode

Je ne comprends pas pourquoi ça fonctionne sans encoder le texte mais bref.
 
Discussions similaires
Haut