Pages : 1
#1 Le 14/02/2008, à 15:16
- macnux
Problème d'affichage des caractères stoqués dans mysql
Bonjour à tous et à toutes,
Tout d'abord j'ai découvert ubuntu il y a un peu plus d'un an et j'ai été totalement conquis par cette distribution et sa vaste communeauté. Etant un débutant ubuntu m'a beaucoup facilité la vie pour ma migration sur linux.
J'avais créé un site web sur windows, et hier j'ai voulu changer le jeu de caractère.
J'ai donc migré tout mon site sur une debian sid avec lamp où j'ai suivi les instruction du wiki d'ubuntu pour l'install.
J'ai ensuite réenregistré toutes les pages avec gedit avec comme codage de caractère UTF-8.
Le fichier /etc/apache2/conf.d/charset contient AddDefaultCharset UTF-8 et dans toutes les balises <meta > le charset est utf-8.
L'affichage des caractères accentués qui sont stoqués en dur fonctionnent et ceux qui sont stoqués dans mysql aussi.
Mais ça marche ton truc... non ?
Non pas vraiment... En fait, les caractères qui ne sont pas affichés correctement (à éà é&Ati éà éà éà éà ) sont ceux qui sont passés dans la fonction htmlentities() avant d'être envoyé dans les tables.
Si quelqu'un à une solution je suis preneur !
Merci d'avance depuis la Suisse !
Hors ligne
#2 Le 14/02/2008, à 19:09
- dexinou
Re : Problème d'affichage des caractères stoqués dans mysql
Tu as essayer d'importer ta base avec l'option --defaults-character-set=latin1
En ligne de commande
mysql -u root -ppassword --defaults-character-set=latin1 ta_base < fichier.sql
Remplace latin1 par ton jeu de caractère
Dernière modification par dexinou (Le 14/02/2008, à 19:11)
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
#3 Le 14/02/2008, à 19:23
- Balkoth
Re : Problème d'affichage des caractères stoqués dans mysql
Bonjour,
Si ta base mysql est bien en utf8, que tes pages sont bien en utf-8 avec le bon charset indiqué, alors tu peux essayer de rajouter ça dans ton code php :
mysql_query('SET NAMES utf8')
à€ effectuer juste après la connexion à mysql, par exemple dans un fichier connexion.php à inclure.
Tu as aussi les fonctions utf8_encode et utf8_decode de php. C'est assez lourd, mais ça marche si tu n'as pas réussi à le faire fonctionner par ailleurs.
Hors ligne
#4 Le 14/02/2008, à 20:13
- macnux
Re : Problème d'affichage des caractères stoqués dans mysql
Bonsoir et merci de vos réponses.
dexinou ta commande me renvoie
mysql: unknown variable 'defaults-character-set=utf8'
Et Balkoth la tienne me renvoie ca
Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/test/include/functions.php on line 6
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/test/include/functions.php on line 6
Au passage ma base est en latin1_swedish_ci
Faut peut être la convertir en utf-8 ?
Hors ligne
#5 Le 14/02/2008, à 21:12
- Balkoth
Re : Problème d'affichage des caractères stoqués dans mysql
Oui, il faudrait convertir la base en utf-8.
Les messages d'erreurs de mysql sont normaux, tu n'as pas établi de connexion à ta base de données...
mysql_query est à faire après mysql_connect et mysql_select_db.
Hors ligne
#6 Le 14/02/2008, à 22:12
- dexinou
Re : Problème d'affichage des caractères stoqués dans mysql
avec les 2 barres devant ou essai sans le 's' a 'defaults' (de tête tu sais...)
--defaults-character-set=utf8
un man mysql t'aidera à trouver la bonne syntaxe pour ta version du client.
Dernière modification par dexinou (Le 14/02/2008, à 22:14)
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
#7 Le 14/02/2008, à 22:51
- macnux
Re : Problème d'affichage des caractères stoqués dans mysql
Bonsoir,
Le problème est résolu
J'ai utilisé
mysql -u root --password=monpassword --default-character-set=utf8 Ma_base < data.sql
Après importation des données les caractères accentués sont enfin pris en charge !
Ce qui me chifonne c'est que quand je regarde l'encodage avec phpmyadmin, il me met que je suis encore en latin1_swedish_ci...
Enfin bref... Je vous remercie de m'avoir aidé pour résoudre ce problème.:)
Et j'frais plein plein de pub pour Ubuntu
Hors ligne