Re: [debutant] [HS] mysql et encodage
Le jeudi 8 février 2007, Georges Lours a écrit : > Le jeudi 8 février 2007, Georges Lours a écrit : >> Voilà, je m'initie aux bases de données mysql et, avec l'aide du site du >> zéro, je viens de créer une table. J'arrive à affiche le contenu dans un >> navigateur, mais les accents sont tous remplacés par un ? Impossible de >> trouver par moi-même ce qu'il faut faire ! (...) > > J'ai trouvé une solution pour contourner le problème, mais pas pour le > régler ! > La solution de contournement, c'est d'utiliser la fonction utf8_encode() de > php. Pour insérer mes données de la base dans ma page web, je saisis > > $reponse = mysql_query("SELECT * FROM pages WHERE id='$id'"); > $donnees = mysql_fetch_array($reponse); > echo utf8_encode($donnees['contenu']); > ?> > > Et c'est presque bon ! Le seul problème qui demeure c'est les œ (o et e > liés). Ils ne sont pas ou mal transmis, même avec utf8_encode() ! > Mais, on progresse... Ci-dessus, le rappel de mon problème Solution encore meilleure : Juste après la ligne mysql_connect("localhost", "$user", $passwd"); on ajoute simplement mysql_query("SET NAMES 'utf8'"); ET tout marche impec, même les œ ! -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Georges Lours a écrit : Le jeudi 8 février 2007, olivier-serveur a écrit : je me suis mal exprimé, je voulais dire : si tu enregistres ton squelette en utf-8, de facon a n'avoir plus que du utf-8, est-ce que l'affichage s'avere correct (eventuellement en precisant charset=utf-8, mais vaudrait mieux pas pour les tests) ? Non, si j'enregistre mon squelette en utf-8, ça m'affiche correctement le menu déroulant (qui est dans ce squelette) et ça m'affiche mal le contenu qui vient de la base. Si j'enregistre ce squelette au format iso8859-15, ça m'affiche tout bien, mais tout mon système et tout le reste du site est en utf-8 ! = ça semble donc venir de l'encodage de mysql. Si tu lances phpmyadmin sur ton localhost, qu'est ce que tu as dans les rubriques : jeu de caractères pour mysql et interclassement pour la connexion mysql ? raber = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le jeudi 8 février 2007, olivier-serveur a écrit : > je me suis mal exprimé, je voulais dire : > si tu enregistres ton squelette en utf-8, de facon a n'avoir plus que du > utf-8, est-ce que l'affichage s'avere correct (eventuellement en > precisant charset=utf-8, mais vaudrait mieux pas pour les tests) ? Non, si j'enregistre mon squelette en utf-8, ça m'affiche correctement le menu déroulant (qui est dans ce squelette) et ça m'affiche mal le contenu qui vient de la base. Si j'enregistre ce squelette au format iso8859-15, ça m'affiche tout bien, mais tout mon système et tout le reste du site est en utf-8 ! -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Georges Lours a écrit : Le jeudi 8 février 2007, olivier-serveur a écrit : on dirait que l'entete et le contenu ne sont pas dans le meme charset. Exactement, mon système est bien en utf-8, mais mysql me renvoit des données en windows-1252 ! (je ne sais pas si cela a un rapport avec MS, pourtant mon mysql est installé à partir des rpm, fedora, certes, mais linux quand même) Si j'enregistre le même fichier en iso8859-15, tout s'affiche normalement, entête et contenu ! Mais ma page est toujours repérée par firefox comme étant en windows-1252 !!! Partout sur mon système, j'ai de l'utf-8 qui est configuré ! (enfin partout où j'ai repéré qu'il y avait une config pour l'encodage :) peut-etre pas dans l'entete (le squelette) que te propose spip. As-tu essayé de ne mettre que l'entete en utf-8 ? Est-ce que ca s'affiche correctement ? et si oui, essaye de rajouter le texte. Non, si je définis charset=utf-8" dans le head de mon squelette, ça m'affiche correctement le contenu du fichier (le menu déroulant), mais les données provenant de la base s'affichent mal Si je ne définis aucun charset, la page est repérée comme étant en windows-1252 ! et mon menu déroulant s'affiche avec des erreurs mais pas les données provenant de la base qui, elles, s'affichent correctement. je me suis mal exprimé, je voulais dire : si tu enregistres ton squelette en utf-8, de facon a n'avoir plus que du utf-8, est-ce que l'affichage s'avere correct (eventuellement en precisant charset=utf-8, mais vaudrait mieux pas pour les tests) ? = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le jeudi 8 février 2007, Georges Lours a écrit : > Le jeudi 8 février 2007, olivier-serveur a écrit : > > on dirait que l'entete et le contenu ne sont pas dans le meme charset. > > Exactement, mon système est bien en utf-8, mais mysql me renvoit des > données en windows-1252 ! (je ne sais pas si cela a un rapport avec MS, > pourtant mon mysql est installé à partir des rpm, fedora, certes, mais > linux quand même) > J'ai trouvé une solution pour contourner le problème, mais pas pour le régler ! La solution de contournement, c'est d'utiliser la fonction utf8_encode() de php. Pour insérer mes données de la base dans ma page web, je saisis Et c'est presque bon ! Le seul problème qui demeure c'est les œ (o et e liés). Ils ne sont pas ou mal transmis, même avec utf8_encode() ! Mais, on progresse... -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le jeudi 8 février 2007, olivier-serveur a écrit : > on dirait que l'entete et le contenu ne sont pas dans le meme charset. > Exactement, mon système est bien en utf-8, mais mysql me renvoit des données en windows-1252 ! (je ne sais pas si cela a un rapport avec MS, pourtant mon mysql est installé à partir des rpm, fedora, certes, mais linux quand même) > > Si j'enregistre le même fichier en iso8859-15, tout s'affiche > > normalement, entête et contenu ! Mais ma page est toujours repérée par > > firefox comme étant en windows-1252 !!! > > Partout sur mon système, j'ai de l'utf-8 qui est configuré ! (enfin > > partout où j'ai repéré qu'il y avait une config pour l'encodage :) > > peut-etre pas dans l'entete (le squelette) que te propose spip. > As-tu essayé de ne mettre que l'entete en utf-8 ? Est-ce que ca > s'affiche correctement ? et si oui, essaye de rajouter le texte. Non, si je définis charset=utf-8" dans le head de mon squelette, ça m'affiche correctement le contenu du fichier (le menu déroulant), mais les données provenant de la base s'affichent mal Si je ne définis aucun charset, la page est repérée comme étant en windows-1252 ! et mon menu déroulant s'affiche avec des erreurs mais pas les données provenant de la base qui, elles, s'affichent correctement. Je réponds aussi ici à Cécile: Si je décommente dans httpd.conf AddDefaultCharset UTF-8 et bien, par défaut, ça fait comme si j'avais défini un charset utf-8 dans le head de mon fichier. Il est repéré comme étant en utf-8 et le menu déroulant s'affiche correctement, mais pas les données venant de la base :( -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Georges Lours a écrit : Le mercredi 7 février 2007, pressecq a écrit : [...] Peut-être un peu plus d'explications pour décrire le problème J'ai une page web qui devrait servir de squelette (pour reprendre les termes de spip). Elle contient notamment - l'entête du site et un menu déroulant qui est commun à toutes les pages, - le contenu particulier de chaque page devrait être recherché dans la base de données. Lorsque je fais un essai, j'ai mon entête et mon menu déroulant qui s'affichent correctement et le contenu de la page et tout ce qui est cherché dans la base de données s'affichent avec des erreurs sur les caractères accentués. Alors, j'ai édité mon httpd.conf et j'ai commenté la ligne AddDefaultCharset UTF-8 Dans l'entête de mon fichier "squelette", j'ai supprimé la ligne Là c'est le contraire, le contenu s'affiche correctement, mais l'entête et le menu déroulant s'affichent avec des erreurs et, surprise, dans les on dirait que l'entete et le contenu ne sont pas dans le meme charset. Si j'enregistre le même fichier en iso8859-15, tout s'affiche normalement, entête et contenu ! Mais ma page est toujours repérée par firefox comme étant en windows-1252 !!! Partout sur mon système, j'ai de l'utf-8 qui est configuré ! (enfin partout où j'ai repéré qu'il y avait une config pour l'encodage :) peut-etre pas dans l'entete (le squelette) que te propose spip. As-tu essayé de ne mettre que l'entete en utf-8 ? Est-ce que ca s'affiche correctement ? et si oui, essaye de rajouter le texte. = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
[jeu 08 février (~) user] locale LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= Bon, tout va bien, meme si le dernier est vide. Alors, j'ai édité mon httpd.conf et j'ai commenté la ligne AddDefaultCharset UTF-8 Il ne faut pas commenter cette ligne, elle doit etre "active". j'ai pas d'autres idées, ayant moi aussi des pb de ce style (voir mon mail d'hier avec Ganesha) A+ Cécile = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le mercredi 7 février 2007, pressecq a écrit : > Tout ce que tu énonces concerne Apache. > Concernant le systeme lui meme, c'est autre chose : dans phpinfo, il y a > un tableau environnement, dans lequel tu devrais avoir ça, entre autes : > C_ALL fr_FR.UTF-8 > LANG fr_FR.UTF-8 > LC_CTYPE fr_FR.UTF-8 Dans phpinfo, je n'ai pas cela dans le tableau environnement Par contre, j'ai bien ces valeurs dans ma configuration du système [jeu 08 février (~) user] locale LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= Sauf donc le dernier, mais même en le rajoutant par un export, ça ne marche pas mieux. Peut-être un peu plus d'explications pour décrire le problème J'ai une page web qui devrait servir de squelette (pour reprendre les termes de spip). Elle contient notamment - l'entête du site et un menu déroulant qui est commun à toutes les pages, - le contenu particulier de chaque page devrait être recherché dans la base de données. Lorsque je fais un essai, j'ai mon entête et mon menu déroulant qui s'affichent correctement et le contenu de la page et tout ce qui est cherché dans la base de données s'affichent avec des erreurs sur les caractères accentués. Alors, j'ai édité mon httpd.conf et j'ai commenté la ligne AddDefaultCharset UTF-8 Dans l'entête de mon fichier "squelette", j'ai supprimé la ligne Là c'est le contraire, le contenu s'affiche correctement, mais l'entête et le menu déroulant s'affichent avec des erreurs et, surprise, dans les informations sur la page (menu outils de firefox), ça m'indique que la page est en windows-1252 !!! Alors que, je suis formel, mon fichier est bien enregistré en utf-8 Si j'enregistre le même fichier en iso8859-15, tout s'affiche normalement, entête et contenu ! Mais ma page est toujours repérée par firefox comme étant en windows-1252 !!! Partout sur mon système, j'ai de l'utf-8 qui est configuré ! (enfin partout où j'ai repéré qu'il y avait une config pour l'encodage :) Je sèche -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: Re: [debutant] [HS] mysql et encodage
Dans ces pb d'accent, il faut regarder du côté de Apache, de Mysql, et aussi du côté de PHP : regardes avec phpinfo s'il est question d'Utf8, dans la partie php_variables et environnement. Dans phpinfo, j'ai cherché les valeurs utf-8 et j'ai trouvé ça : Dans le tableau Apache Environment HTTP_ACCEPT_CHARSET UTF-8,* Dans le tableau HTTP Headers Information HTTP Request Headers Accept-Charset UTF-8,* HTTP Response Headers Content-Typetext/html; charset=UTF-8 Dans le tableau PHP Variables _SERVER["HTTP_ACCEPT_CHARSET"]UTF-8,* Et ton serveur, est il bien en UTF8 ? Taper la commande locale pour savoir. Oui cf ci-dessus. J'me trompe ? Tout ce que tu énonces concerne Apache. Concernant le systeme lui meme, c'est autre chose : dans phpinfo, il y a un tableau environnement, dans lequel tu devrais avoir ça, entre autes : C_ALL fr_FR.UTF-8 LANG fr_FR.UTF-8 LC_CTYPE fr_FR.UTF-8 A+ Cécile = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le mercredi 7 février 2007, olivier-serveur a écrit : > as-tu bien renseigner le header de ta page : > > en remplacant iso-8859-1 par utf-8 ? > il me semble que si tu ne met rien il est en iso-8859-1 par defaut. Oui, même en désespoir de cause, j'ai essayé les deux :( -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Georges Lours a écrit : [...] J'arrive à affiche le contenu dans un navigateur, mais les accents sont tous remplacés par un ? as-tu bien renseigner le header de ta page : en remplacant iso-8859-1 par utf-8 ? il me semble que si tu ne met rien il est en iso-8859-1 par defaut. = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Je poursuis dans mes investigations... parmi les variables du serveur mysql, j'ai trouvé ça character set client utf8 (Valeur globale)latin1 character set connectionutf8 (Valeur globale)latin1 character set database latin1 character set filesystembinary character set results utf8 (Valeur globale)latin1 character set serverlatin1 character set systemutf8 character sets dir /usr/share/mysql/charsets/ collation connectionutf8_general_ci (Valeur globale)latin1_swedish_ci collation database latin1_swedish_ci collation serverlatin1_swedish_ci C'est quoi cette différence entre character set et valeur globale pour plusieurs entrée ? Et qui c'est qui m'a configuré cela en suédois ? Y-aurait-il là une solution ? -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le mercredi 7 février 2007, Thibaut a écrit : > Ta base de donnnee manipule des chaines en UTF8 mais tes pages PHP ne > doivent pas etre en UTF8. > Quand tu edites ton script PHP, fait "enregistrer sous" et tu vas > avoir une option te permettant de sauvegarder en UTF8. > > Si n'y arrive pas, precise nous l'editeur que tu utilises (quantas +, > kwrite) Non, mon script est bien enregistré en utf-8 J'utilise quanta et je l'ai bien configuré pour encoder, par défaut, en utf-8 -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le mercredi 7 février 2007, Cécile Pressecq a écrit : > Chez moi, il y a utf8_general_ci, à cet endroit : essaie de modifier ça ? Ça ne change rien > Dans ces pb d'accent, il faut regarder du côté de Apache, de Mysql, et > aussi du côté de PHP : regardes avec phpinfo s'il est question d'Utf8, dans > la partie php_variables et environnement. Dans phpinfo, j'ai cherché les valeurs utf-8 et j'ai trouvé ça : Dans le tableau Apache Environment HTTP_ACCEPT_CHARSET UTF-8,* Dans le tableau HTTP Headers Information HTTP Request Headers Accept-Charset UTF-8,* HTTP Response Headers Content-Typetext/html; charset=UTF-8 Dans le tableau PHP Variables _SERVER["HTTP_ACCEPT_CHARSET"] UTF-8,* > > Et ton serveur, est il bien en UTF8 ? > Taper la commande locale pour savoir. Oui cf ci-dessus. J'me trompe ? -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
On Feb 7, 2007, at 1:13 PM, Georges Lours wrote: Bonjour, Il me semble bien avoir vu un fil du même genre il y a quelques temps, mais impossible de le retrouver dans les archives ! Voilà, je m'initie aux bases de données mysql et, avec l'aide du site du zéro, je viens de créer une table. J'arrive à affiche le contenu dans un navigateur, mais les accents sont tous remplacés par un ? Impossible de trouver par moi-même ce qu'il faut faire ! Ta base de donnnee manipule des chaines en UTF8 mais tes pages PHP ne doivent pas etre en UTF8. Quand tu edites ton script PHP, fait "enregistrer sous" et tu vas avoir une option te permettant de sauvegarder en UTF8. Si n'y arrive pas, precise nous l'editeur que tu utilises (quantas +, kwrite) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Sur la page d'accueil de phpmyadmin Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) > Interclassement pour la connexion MySQL: utf8_unicode_ci Chez moi, il y a utf8_general_ci, à cet endroit : essaie de modifier ça ? Dans ces pb d'accent, il faut regarder du côté de Apache, de Mysql, et aussi du côté de PHP : regardes avec phpinfo s'il est question d'Utf8, dans la partie php_variables et environnement. Et ton serveur, est il bien en UTF8 ? Taper la commande locale pour savoir. A+ Cécile = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Le mercredi 7 février 2007, Bernard Siaud a écrit : > As-tu installé phpMyAdmin ? C'est un GUI pour manipuler tes tables. Oui, j'ai bien phpMyAdmin > Les as-tu définis en utf8 ou en iso des tables ? Je ne sais pas trop justement : dans phpmyadmin, il y a plein d'endroits où il est question d'encodage. J'ai tout mis en utf-8 Sur la page d'accueil de phpmyadmin Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) Interclassement pour la connexion MySQL: utf8_unicode_ci Ensuite si je sélectionne la base J'ai une colonne interclassement qui est encore utf8_unicode_ci Ensuite, si je sélectionne la table J'ai une colonne interclassement qui est encore utf8_unicode_ci pour tous les champs qui contiennent du texte Mon serveur apache, affiche d'habitude correctement les pages html condées en utf-8, mais il m'affiche mal le contenu de ces champs de base de données avec des caractères accentués ! Si le modifie le contenu de ces champs, ça ne fait rien ! -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 38) = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =
Re: [debutant] [HS] mysql et encodage
Georges Lours a écrit : Bonjour, Il me semble bien avoir vu un fil du même genre il y a quelques temps, mais impossible de le retrouver dans les archives ! Voilà, je m'initie aux bases de données mysql et, avec l'aide du site du zéro, je viens de créer une table. J'arrive à affiche le contenu dans un navigateur, mais les accents sont tous remplacés par un ? Impossible de trouver par moi-même ce qu'il faut faire ! Bien cordialement, As-tu installé phpMyAdmin ? C'est un GUI pour manipuler tes tables. Les as-tu définis en utf8 ou en iso des tables ? -- Amicalement vOOotre Troumad Alias Bernard SIAUD mon site : http://troumad.info : AD&D maths WEB sectes Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html N'envoyez que des documents avec des formats ouverts, comme http://fr.openoffice.org = Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com";. Rejoignez le club Mandriva : http://club.mandriva.com =