Page 1 sur 1

encodage / collation base Mysql pour francais

Posté : 22 oct. 2006, 17:28
par Juls911
Bonjour,

J'ai une base de donnee Mysql contenant du texte en francais (avec accents etc...) pour un de mes sites.
Le site en php affiche le texte de la bdd.

Mon hebergeur a migré mes bases d'un serveur a un autre et suite a ca ma base a ete rendue illisible car tous les accents ont sauté. Certains ont été encodés et d'autres non reconnus sont devenus des ??
J'ai aujourd'hui change d'hebergeur et ait réussi a remettre tout le texte de ma base avec les accents.

Mon hebergeur actuel est actuellement configuré comme ceci :
MySQL charset: UTF-8 Unicode (utf8) (configuration non modifiable par moi)
MySQL connection collation:latin1_swedish_ci (moodifiable par moi)

Ma base est en latin 1 et la table que j'essaye d'importer est en latin1

Lorsque je tente l'import j'ai une erreurcar il ne reconnait pas un caractere et lorsqu il m'affiche la requete tous les accents sont des caracteres chinois.

Je veut pouvoir rentrer mon texte avec les accents en dur et non pas les accents codés. Pour que cela fonctionne dois-je demander a changer le MySQL charset et le passer en latin1 swedish ?
Est ce possible de le faire en direct avec phpMyAdmin?

Merci d'avance
Juls

Posté : 22 oct. 2006, 18:04
par Ajoloca
Bonjour Juls911,

Comme je te l'ai dis par mail, le PB ne viens pas de ta base.

Quand tu affiches le contenu de ta table 'livres' sur un navigatuer, tout est correctement affiché (accents et autres).

Le PB vien de l'encodage de phpMyAdmin qui lui est codé en UTF8_binary.

De plus phpMyAdmin exporte par défaut en UTF8. Donc le fait d'exporter et importer ne résoudra pas le PB.

Pour la saisie (nouvelle ou mise à jour) tu devrais faire comme je te l'ai dis, créer une interface et non passer passer par phpMyAdmin (c'est pas son rôle)

Posté : 22 oct. 2006, 23:06
par Juls911
Bonjour.

J'ai besoin de réimporter le contenu de mon ancienne base dans une nouvelle table, connaissez vous un outil (autre que phpmyadmin) qui puisse permettre de faire ça?

Merci d'avance
Juls

Posté : 22 oct. 2006, 23:28
par Ajoloca
Re,

Si toutes les tables de ta base ont été exportées de la même manière que 'livres' tu as plusieurs solutions.

Si accès à la ligne de commande du système
Se connecter à MySQL
Si la base existe la supprimer

Code : Tout sélectionner

DROP DATABASE nom_database;
Recréer la base

Code : Tout sélectionner

CREATE DATABSE nom_database DEFAULT CHARACTER SET jeux_caracteres COLLATE collation;
Se "positionner" dans la nouvelle base

Code : Tout sélectionner

USE nom_database
Importer la base

Code : Tout sélectionner

SOURCE /nom/complet/fichier.sql
Une autre solution

Code : Tout sélectionner

mysql -u root -pPass Base < script.sql
Dans ce cas le script doit contenir la suppression, création et "déplacement" dans la base

Si pas d'accès à la ligne de commande utiliser l'une des deux méthodes précédentes via un script PHP (La seconde méthode doit se faire avec avec la fonction exec(), shell_exec() ou system())