Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 big_smile
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... neutral

Enfin bref... Je vous remercie de m'avoir aidé pour résoudre ce problème.:)

Et j'frais plein plein de pub pour Ubuntu tongue

Hors ligne