Affichage caractères spéciaux

Statut
N'est pas ouverte pour d'autres réponses.

MbK_

Etudjant
Bonjour,

J'ai réalisé un site en local et je viens de le mettre sur internet! Le problème est que les caractères spéciaux sont mal affichés!

Sur IE j'ai un carré et sur FF, j'ai un point d'interrogation �...

Je sais que c'est une questions d'encodage mais j'ignore ce qu'il faut faire pour le réparer!

HELP svp :)

le lien est ICI

EDIT : Après plusieurs recherches, je vois que le peux changer l'encodage sur FF et cela s'arrange! Que dois-je faire pour que tout le monde voit convenablement les caractères!

Lors de la réalisation du site, j'avais parfois des problèmes en faisant des "echo" en php. J'ai donc écrit les caractères en ENTITIES (ex : à) et ca allait mieux!

Dans ma base de donnée, les données s'enregistrent de plusieurs manieres :

Si c'est par le forum, c'est en caractère normal mais si c'est par un script que j'ai écrit, c'est en caractère du style é!

J'ai donc pleins d'encodages différents sur le site et je ne sais pas lequel prendre pour que le site soit visible de tous!

Que dois-je mettre également en entete ? Pour le moment, c'est

PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Je suis un peu perdu...

EDIT : Bon, je remarque qu'en le passant en iso-8859-1 ca s'affiche bien en grande partie mais pas tout!

En réalité, j'ignore en quel type d'encodage les données du forum phpBB sont enregistrées dans la bdd! Vous savez ca?
 
Tu dois tout mettre en unicode ( UTF-8 ) si tu veux que tous le monde le voit correctement.
Après, tous le monde n'a qu'à être en unicode.
 

Tifox

ou pas
Essaye (c'est l'encodate "français")

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


Ceci dit, travailler avec des encodages différents, c'est pas la meilleur idée qua dtu as le contrôle sur l'encodage des données.
 
1er
OP
MbK_

MbK_

Etudjant
En fait, je n'ai jamais fait attention aux différents encodages, c'est pour ca que j'en utilise des différents!

Dans phpmyadmin, je remarque ceci :
  • Jeu de caractères pour MySQL: UTF-8 Unicode (utf8 )
  • Interclassement pour la connexion MySQL: utf8_unicode_ci
et tous ls champs text ou varchar son en latin1_swedish_ci

Vu que j'ai déjà quelques insertions dans la BDD, quel jeux de caractère devrais-je choisir pour l'affichage?

EDIT : je remarque que l'utf8 reconnait tous les caractères alors que les iso pas...

Je n'aimerai pas manquer de caractère dans quelques mois (ex : le €)

Le mieux n'est pas donc de passer en utf8 (gamerz est apparemment en utf8 :D )? Que dois-je changer dans ma BDD dans ce cas? Quel est la différence entre interclassement et le jeux de caractère de la bdd?
 

Tifox

ou pas
L'encodage de gamerz, c'est du ISO-8859-1 d'après le code source des pages.

Note que ISO-8859-1, c'est connu aussi sous le nom de latin1 ou occidental.

Pour ce qui est de changer l'encodage dans mysql, je ne l'ai jamais fais avec des données existantes, je ne sais pas si tu peux faire ça directement sans passer par un import/export.

Fais une recherche dans google, tu devrait trouver des bonnes infos (j'ai pas les url sur ce pc-ci).
 
1er
OP
MbK_

MbK_

Etudjant
Y'a un moment, j'etais tombé sur un site qui reprenait toutes les erreurs d'encodages.

ex : un "é" s'affiche @" si vous affichez du utf8 en latin1...

etc mais je trouve plus l'adresse !

PS : d'après firefox, gamerz est affiché en UTF8... je comprends plus trop mnt :x
 
1er
OP
MbK_

MbK_

Etudjant
Bon, je pense que je vais tout mettre en ISO-8859-1!

J'utilise Dreamweaver et j'aimerai qu'il sache que c'est dans cet encodage qu'il doit enregistrer les pages! En effet, dans ma BDD, j'encode les caractère normalement (é, è etc et non pas &eacute; etc) et ca s'affiche bien après un echo par contre, dans les pages elles-memes, lorsque j'écris "é ou è", ca s'affiche "é" par ex...

Faut-il que je change un parametre dans dreamweaver pour qu'il écrite tout en latin1?

Dans les propriétés de la page, je vois que je suis en UTF8, mais je ne vois pas dans la liste un latin1 ou un ISO-8859-1. Je mets quoi alors?
 
1er
OP
MbK_

MbK_

Etudjant
J'ai trouvé, il faut le mettre en Western European!
Ca a l'air d'aller pour le moment à part que j'ai rien touché à la phpmyadmin...

Je dois faire quelque chose? Le mettre en latin1? Si oui, lequel, pcq y'en a plein!
 

ozilrit

Elite

ozilrit

Elite
En somme :
  • Dreamweaver en UTF-8,
  • base de donnée en UTF-8,
  • et annoncer UTF-8.
 
1er
OP
MbK_

MbK_

Etudjant
Et comment tu arrives à voir dans quel encodage la page est?

Vu que l'utf8 est utilise seulement si on utilise des autres langues etc et que mon site restera en FR, j'ai opté pour l'iso-8859-1! Toutes mes pages sont ainsi changées!

Par contre, je n'ai toujours rien fait à ma BDD... Pour la mettre en iso-8859-1, il suffit de mettre iso-8859-1 dans les parametres ou faut-il faire quelque chose de spécial? J'ai pas trop envie de tout faire foirer!
 

Kent

Touriste
Il ne faut pas tout confondre.
Dans une page web il y a deux encodages qui doivent être cohérents*:
  1. L'encodage du document*: le document lui même est encodé d'une certaine façon.
  2. L'encodage spécifié*: le code que la page affirme utiliser.


Pour le reste, le navigateur fait son choix en testant ces deux parametre.

L'idéal serait de tout mettre en utf_8... méthode qui a cependant plusieurs défauts. Dans un premier lieu, php gère mal l'utf8 vu que son moteur est basé l'encodage iso 8895-1. Si l'on ne fait pas attention de très gros soucis peuvent survenir. Idéalement les fichiers devraient être en ISO et renvoyer une page en UTF (encore que pour le français l'utf8 n'apporte pas énormément par rapport à l'iso [sauf dans des cas particuliers]). Autre défaut l'utf8, encodage multi-bytes, prend plus de place que l'iso, et il en résulte des pages (un peu) plus volumineuses.
 
1er
OP
MbK_

MbK_

Etudjant
Je n'ai plus de problème après avoir tout mis en ISO! Mais bon, j'aurais pu tout mettre en UTF8 aussi mais c'est moins lourd ainsi!

Merci pour vos éclaircissements !
 
Comme le dit Kent, l'encodage c'est aussi au niveau du fichier donc il faut checker que les pages soient en UTF8 (sans BOM de préférence)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut