|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonsoir à tous,
J'ai regardé attentivement la FAQ...le forum...rien trouvé. Alors je pose ma question: Comment changer le jeu de caractères de toute une base et donc, de toutes les tables qui la contiennent. Bref je veux la passer en UTF-8. J'ai PhpMyadmin 2.5.7-pl1 Et c'est vraiment le bin's, ces jeux de caractères/interclassement ! Merci de votre coup de main. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
il faut le faire table par table avec ALTER TABLE... CONVERT.
|
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Merci du tuyau.
C'est vachement bien foutu, ce truc ! Je n'ai que 300 tables dans la base, ça va aller vite !
|
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
un code dynamique quelconque te fait ça fastoche. Exemple en PHP:
Code php :
n'oublie pas non plus de changer le jeu par défaut de ta base (ALTER DATABASE...). |
||
|
|
00
|
|
|
#5 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonjour et merci de ton bout de code: il m'a en effet permis de changer le jeu de caractères de toute la base. J'ai ensuite fait l'instruction
Code :
Cependant, j'ai fait un test en créant une nouvelle table dans cette base (sur mon phpMyAdmin local), et par défaut, le jeu de caractère est latin1_swedish_ci... Le problème est que quand j'exporte cette table pour l'importer sur mon serveur - dont la version est la même que mon local (2.5.7-pl1) - j'ai une erreur et un echec: cette ligne du fichier sql d'export n'est pas comprise: DEFAULT CHARSET = latin1 C'est à cause du alter database qui a échoué ? que donc le jeu de caractère par défaut n'a pas été modifié ? Je suis plongé dans ton tuto "jeux de caractères et collations...", mais c'est un peu ardu. As tu une idée ? D'avance merci. |
||
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Pour changer le jeu par défaut de la base :
Code :
ALTER DATABASE `mabase` CHARSET utf8 ; Citation:
|
|
|
|
00
|
|
|
#7 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Oui, effectivement, ton instruction ALTER DATABASE fonctionne parfaitement.
Je l'exécute donc. Puis je recrée une table test. Que j'exporte. Voici le fichier sql qui en découle (toujours pas supporté par mon serveur) Code :
|
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Je viens de tester ta requête telle quelle sur Free (MySQL 5.0.27), ça passe sans problème... Tu devrais tester ta version avec :
|
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Je viens de tester ma version.
C'est 4.1.9-max Mais par défaut,à la création d'une table, j'ai toujours latin1_swedish_ci sur les champs et DEFAULT CHARSET=latin1 quand j'exporte. Il faut que je mette à jour ma version SQL ? Merci de ta patience. |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
non, il faut juste enlever le =... c'est une petite divergence entre la 4.1 et la 5.
Pour tes histoires de jeux par défaut mal placés... que donne cette requête sur ton serveur source ? |
|
|
00
|
|
|
#11 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonjour,
J'ai exécuté ta requete sur mon serveur local, pour une base, voici le résultat: Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com