Version complète: sur le forum Webmaster Hub : Encodage de contenus lors de migration de contenu interbase.
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
NiCoS
Hello,

Je suis en train de rédiger un convertisseur qui prend des contenus générés par Dotclear pour les envoyés dans la base de Drupal.

Or il se trouve que :
- les contenus de la base dotclear sont encodés au format latin1_swedish_ci
- les contenus de la base drupal sont encodés au format utf8_general_ci

Du coup, quand en PHP je prends les contenus de l'une pour les mettre dans l'autre, les accents n'apprécient pas du tout.

J'ai essayé de jouer avec utf8_decode, hmlentities, htmlspecialchars, mais j'y arrive pas sad.gif

Y a-t-il une bonne méthode pour faire cette conversion ?

Merci d'avance pour votre aide,
Nicolas
NiCoS
Ce qui est étrange, c'est qu'une fois les contenus récupérés de ma base dotclear, je fais un utf8_decode() dessus puis un mysql_real_escape_string().

Sur les catégories, j'ai tout bien proprement à l'écran (via des echo $variable ou même à l"insertion dans la bdd). Par contre pour les billets, c'est bon à l'écran mais ko dans la base.
NiCoS
Trouvé, j'ai ajouté ceci avant mes insertions SQL :

CODE
mysql_query("SET NAMES utf8");
mysql_query("SET collation_connection = 'utf8_unicode_ci'");


Comme quoi ça sert de logguer les requêtes SQL et d'analyser les requêtes de Drupal wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.