Page 1 of 1

[résolu]cms1.6 et utf8_general_ci

Posted: Fri Jun 26, 2009 7:48 am
by Jean le Chauve
Bonjour,

Je viens de tester la nouvelle version en local avant d'upgrader mes sites.
Très heureux de voir que l'interclassement des tables passe en utf8_general_ci partout  .
Je suppose donc que pour la pérennité des upgrade suivants, il serait intéressant de garder cela.

Donc, je voudrais exporter mes sites dans des nouvelles installations 1.6 avec tables utf8_general_ci
Mais, dans les versions précédentes, les tables étaient en latin1_swedish_ci.
Lorsque j'effectue mon import sur une installation fraîche, les caractères accentués ne correspondent plus à ce nouveau charset.
Les "é" étaient représentés par "é" dans les anciennes tables et deviennent maintenant "é".

Ma question est celle-ci : comment effectuer correctement l'export et l'import via PhpMyadmin vers une nouvelle installation ?

Lors de l'export vers un fichier sql, j'obtiens pour la création des tables : ENGINE=MyISAM DEFAULT CHARSET=latin1
Quelle commande puis-je utiliser pour convertir ces "é" en "é" et autres ?
Ou est-ce que je ne dois pas travailler avec une nouvelle installation ?
Ou si quelqu'un avait un petit script de conversion ?

Merci d'avance

Re: cms1.6 et utf8_general_ci

Posted: Sat Jun 27, 2009 11:07 am
by Jean le Chauve
Reprenons : dans les sites avant 1.6, les tables étaient en latin1_swedish_ci et le client PhpMyadmin nous affichait les caractères accentués en utf8 (é était représenté par é)
Aujourd'hui, je désire importer mes sites dans de nouvelles installations de la version 1.6.
Problème : après l'import de bd, le nouveau site affiche les caractères accentués en utf8 donc "é" est affiché  "é" (bien entendu, est dans la head).

Si je crée une nouvelle page, PhpMyadmin affiche les caractères accentués dans la table cms_content_props en latin1 ("é" est affiché "é") et le site affiche correctement "é".

Comment peux-t-on réaliser un import de bd d'une ancienne version dans une nouvelle installation 1.6 ?

Re: cms1.6 et utf8_general_ci

Posted: Sat Jun 27, 2009 12:05 pm
by alby
Jean le Chauve wrote: Comment peux-t-on réaliser un import de bd d'une ancienne version dans une nouvelle installation 1.6 ?
Look in config.php
If you set to false "set-names" item you have old behaviour

Alby

Re: cms1.6 et utf8_general_ci

Posted: Sat Jun 27, 2009 12:22 pm
by Jean le Chauve
Great Alby, you save my time  :)
Is there no problem with the future upgrades ?

Re: cms1.6 et utf8_general_ci

Posted: Sat Jun 27, 2009 12:52 pm
by alby
Jean le Chauve wrote: Great Alby, you save my time  :)
Is there no problem with the future upgrades ?
upgrade never change your config values, if you have set-names true then was a new installation in other case was false (prev behaviour)

Alby

Re: cms1.6 et utf8_general_ci

Posted: Sat Jun 27, 2009 1:40 pm
by Jean le Chauve
Thank you very much, Alby

Voici la solution en français :
Créez une nouvelle bd, installez une nouvelle version de cmsms1.6.
Importez votre BD de manière traditionnelle.
Allez dans le config.php et modifiez la ligne 178

Code: Select all

$config['set_names'] = true;
par

Code: Select all

$config['set_names'] = false;
Les caractères affichés dans vos tables resteront en utf8 et, lors de modifications ou d'ajouts par l'administration, les nouveaux caractères intégrés dans la base seront du même type que dans votre ancienne version, par exemple "é".
Il n'y aura pas de melting-pot dans les caractères ;)