Edit : le problème est résolu, vous trouverez la réponse à la fin de ce fil de discussion

Bien le bonsoir,

J'aimerai, vous vous en doutez, que mon site ait comme jeu de caractères le fameux UTF-8. Cela me permettrait, il me semble, d'écrire mes sites à la main (avec Smultron sur Mac, qui encode effectivement en UTF-8) sans devoir chercher à chaque fois le code du caractère accentué que je veux utiliser (au diable é !)

J'ai lu pas mal durant cette journée à droite à gauche, pour savoir comment faire, et ensuite pour comprendre pourquoi ce que je faisais ne marchais pas.

J'avais effectivement mis la balise <meta> adaptée, comme dans les textes que vous conseillez, mais j'ai découvert que mon serveur était toujours configuré en ISO-8859-1. Donc, si j'ai bien suivi tout ce que vous dites, je dois reconfigurer mon serveur.

Seulement, mon site est un site personnel, et je ne code que pour mon plaisir. Je ne suis pas un professionnel, ni un fougueux passionné. Je ne connais strictement rien en dehors de XHTML et de CSS (et de la fonction include() de PHP). Pire que ça, je n'ai pas l'intention d'en savoir beaucoup plus pour le moment...

Bref, tout ce que je peux vous dire, c'est que mon serveur est un Apache, et que je devrai avoir accès au fameux .htaccess (qui reste à mes yeux, un mystère). Si ça peut vous aider je parviens aussi à me connecter au PhpMyAdmin que fournit mon hébergeur Smiley biggol

J'ai bien trouvé cet article-ci qui pourrait m'être utile, mais je ne comprends pas vraiment la marche à suivre pour y parvenir.
Modifié par dodormir (05 Jun 2008 - 18:45)
Je vais légèrement reformuler, parce que hier, il me semble que j'ai été un peu confus (après des heures de recherche).

Je souhaite faire mon site, à la main, en UTF-8. C'est un site personnel qui utilise simplement la fonction php include(), pour l'header et le footer. Sinon il est entièrement fait de XHTML et de CSS (valides bien sûr ! Smiley biggrin ).

Pour mettre mon site en UTF-8, j'ai inséré a balise :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Normalement, tout allait bien fonctionner, puisque mon logiciel (Smultron) encode en UTF-8. Seulement, lors de la validation XHTML de ma page, le W3C m'avertit :

a écrit :
Character Encoding mismatch!
The character encoding specified in the HTTP header (iso-8859-1) is different from the value in the <meta> element (utf-8). I will use the value from the HTTP header (iso-8859-1) for this validation.


Ma question est simple, c'est une question de débutant, mais je n'ai trouvé d'explications claires nulle part à ce sujet : Comment modifier la valeur du jeu de caractère sur l'HTTP HEADER (que j'ai traduit par le serveur web, dans ma grande ignorance) ?

J'ai bien entendu que cela dépendait du serveur, etc... Mais en l'occurence, je n'utilise pas de tables, ni d'autres trucs barbares dans ce genre, même s'il est vrai que mon hébergeur me le permettrait. Et comme je l'ai dit, il semble que mon serveur soit un Apache.

Je crois que c'est plus clair ainsi pour vous ! Smiley langue Merci!
Modifié par dodormir (05 Jun 2008 - 15:51)
Hello,

Soit tu t'en tires en configurant Apache (en passant sans doute par un fichier .htaccess), soit tu choisis d'écraser l'en-tête Content-Type au niveau de ton code PHP (avant toute génération de contenu) :
header('Content-type: text/html; charset=UTF-8', true);
À la racine de ton site, tu peux créer un fichier nommé .htaccess (ce n'est pas une extension, c'est le nom du fichier qui est ainsi, point initial inclus). Il s'agit d'un simple fichier texte. Tu peux y utiliser la directive suivante:
AddDefaultCharset UTF-8
Tous les fichiers texte (HTML, CSS, texte brut) de ton site seront alors annoncés par le serveur comme étant en UTF-8.

Tu peux aussi utiliser:
AddDefaultCharset Off
Ainsi le serveur n'annoncera pas d'encodage pour les fichiers qu'il envoie. Ça peut être utile si tu as des pages dans des encodages différents sur un même site.
J'ai créé un fichier < fichier.htaccess > contenant le code de Florent V. (j'ai essayé une fois l'un, une fois l'autre). Mais le valideur du W3C m'indique toujours la même chose concernant HTTP Head.

J'ai aussi inscrit, comme le conseillait notre autre ami :
<?php header('Content-type: text/html; charset=utf-8'); ?>


J'ai mis cette ligne de code tout au début de mon fichier < head.inc.php >, avant le DOCTYPE donc. Mais je n'ai toujours pas le résultat attendu.
Smiley decu
Modifié par dodormir (05 Jun 2008 - 18:34)
Je me permets de créer un message supplémentaire, pour signaler clairement la solution du problème.

Oui, j'ai bien dit la SOLUTION ! Smiley biggrin

En fait, j'étais bête, le code php en question, il fallait le mettre dans le fichier < index.php > puisque c'est celui-là qui appelle tout le reste. C'est celui-là qui est premier.

Ouf ! Ben on en a fait du brol, mais comme le résultat est là, ca va !

Merci, je suis très heureux maintenant. Smiley ravi
On vous emmerde, on vous emmerde, mais je suis sûr que quand on arrive à quelque chose, vous êtes heureux pour nous aussi ! Smiley cligne
Modifié par dodormir (05 Jun 2008 - 18:47)
dodormir a écrit :
J'ai créé un fichier < fichier.htaccess > contenant le code de Florent V.

Tu as testé avec un fichier nommé fichier.htaccess, et pas .htaccess (avec RIEN avant le point)? Dans ce cas, c'est normal que ça ne marche pas.

Les fichiers dont le nom commencent par un point sont des fichiers cachés pour les systèmes Unix (Linux, Mac OS X, etc.). Ces systèmes ne fonctionnent pas selon un principe de «nom de fichier + extension» comme le fait Windows.
Modifié par Florent V. (10 Nov 2009 - 18:08)