Probleme avec affichage des caracteres sur les pages

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme avec affichage des caracteres sur les pages

par Hywan » 13 juin 2007, 16:05

Un petit rappel ne fera de mal à personne : http://openweb.eu.org/articles/jeux_caracteres/
On comprend tout de suite mieux ...

par djtec » 13 juin 2007, 15:02

Merci Jules Petibidon

Il fallait que je mette dreamwever sur encodage en UTF-8 je ne savais pas qu'il fallait ça.

Maintenant je le serais merci bien pour ton aide et au autre aussi.

++

par Jules Petibidon » 13 juin 2007, 14:44

alors étape 1
vérifie l'encodage utilisé par ton premier site en html... si tu l'avais pas précisé, il y a de fortes chances qu'il utilise celui par défaut de ton navigateur, soit bien souvent ISO-8859-1
tu peux le faire avec firefox dans le menu affichage->Encodage des caractères. Tu dois pouvoir aussi le faire avec IE mais je sais pas comment vu que j'l'ai pas.

étape 2
sur ton second site en xhtml, force l'encodage de ton navigateur en ISO-8859-1 pour voir si cela change quelque chose.

étape 3
vérifie l'encodage de ton éditeur php/html et passe le en utf8 s'il n'y est pas.

par djtec » 13 juin 2007, 14:05

Le problème que j'ai ne viens pas de mon mysql mais de mon texte que j'écris en html.

Alors voilà j'ai fait un site en html, php, mysql sur mon hébergeur.

Puis j'ai refait un autre site sur le même hébergeur la même bdd le script php et les requêtes sql sont les mêmes a l'identique sauf que maintenant je suis en xhtml, php, mysql.

Moi je pense que cela vient du xhtml car en html basique je n'ai pas se problème je le rencontre que en xhtml

par Jules Petibidon » 13 juin 2007, 11:20

Hello,

J'ai le même problème que toi en ce moment (et j'imagine que cela va durer),
Il semblerait que, pour mon cas, base de données en utf8, charset de pages en utf8, le probleme vienne du client mysql qui est en latin1.

Si quelqu'un d'un peu plus culturé peut expliquer le bidule... moi non en tout cas ;)

Toujours est il que, pour mon cas, le probleme se résoud en faisant systématiquement une premiere requete apres la connexion :

Code : Tout sélectionner

SET NAMES utf8
Sinon, à ce que j'ai pu lire, faut aller bidouiller dans le my.cnf ou my.ini mais cela résoudra ton probleme en local, mais il est peu probable que tu puisse le faire sur un serveur mutualisé ;)

Donc essaye cette requete au cas où, sans garantie que ton problème se situe à ce niveau bien entendu.

Bon courage !

par djtec » 13 juin 2007, 09:31

Bonjour,

J'utilise un language UTF-8 pour la base de donnée et j'ai remarqué que le footer de mon site est aussi en UTF-8 hors que celui-ci est construit de la même manière que le contenu de mon index hors mon index me met des � alors comment faire pour coder un language html en UTF-8 car là je sais pas du tout.

par Klomac » 13 juin 2007, 06:17

Je crois que tu n'a pas lu le lien que je t'ai donné, il t'indique la marche à suivre pour encoder les informations en DB dans le jeu de caractères que tu souhaites, et ça ne passe pas par une balise <meta>.

En fait il faut distinguer plusieurs choses :
- l'encodage de tes fichiers (que tu règles dans ton logiciel)
- l'encodage des informations dans la base de données (que tu indique dans l'administration de ta BDD)
- l'encodage des informations qui transitent par PHP (que tu indique avec des instructions du type header() )
- l'encodage des pages HTML qui sont produites au final (que tu indique avec une balise meta)

Ce qui est primordial, c'est que le jeu de caractères que tu indique à tel ou tel endroit soit bien le jeu de caractères réel utilisé. Par exemple, si tu as encodé un fichier HTML en UTF-8 et que tu mets une balise <meta> pour indiquer que c'est de l'ISO, tu vas te retrouver avec des ? à la placé de tes accents etc...

L'idéal c'est que tu encodes tes fichiers et tu règles ta BDD sur le même jeu de caractères, ça évite les confusions. Cela dit il peut arriver que ce ne soit pas le cas, et alors tu doit faire appel à des techniques de conversion (pour MySQL il y a des infos dans le lien que je t'ai passé ; sinon il y a des fonctions PHP pour ça).

par Sékiltoyai » 13 juin 2007, 01:57

Ton encodage est soit UTF8, soit ISO. Si tu veux que la bdd et le code soient du même encodage, il faut soit encoder la base en ISO, soit le fichier en UTF8.
Pour transformer l'encodage du fichier, il suffit de le réenregistrer en UTF8.

par djtec » 13 juin 2007, 01:10

Alors j'ai regardé il me faut c'est 2 balise méta

Celle-ci pour les données de ma bdd:

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Et celle là pour le html:

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Mais comment faire pour regrouper les 2 car si je met les 2 il ne prend en fonction la première et pas la deuxième

Idem si je les inverse

par djtec » 12 juin 2007, 22:04

Même avec la balise méta que tu m'as dis de mettre le problème reviens quand même même si se n'est pas du mysql

par Klomac » 12 juin 2007, 22:01

Pour ce qui est des jeux de caractères avec MySQL je te propose de lire ce tutorial très clair à mon sens, écrit par un membre du Site du Zéro : http://www.siteduzero.com/tuto-3-6276-1 ... ments.html

par djtec » 12 juin 2007, 21:58

Désolé Klomac :( :( :( :( :(

Mais j'ai tjr un problème car les info transmise par ma bdd ont tjr le même problème

Ca met les code à place des bon caractères

par Klomac » 12 juin 2007, 21:56

Au plaisir :)

par djtec » 12 juin 2007, 21:47

Désolé pour le double post

Mais c'est cette ligne là qu'il me fallait

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Merci bien

par Klomac » 12 juin 2007, 21:47

Non ce n'est pas ça. Rajoute la ligne que je t'ai donné, si tu ne l'avais pas indiqué je suppose que l'ISO a été utilisé par défaut.