character encoding

jmini

Membre actif
12 Novembre 2001
398
22
38
Metz
www.jmini.fr
Bonjour, je suis en train de travailler sur un site web, et je voudrais en savoir plus sur les character encoding. J'ai presque réussi à valider ma page, mais pour le moment j'utilise la fonction OVERDRIVE du validateur (si j'ai bien compris c'est parce que je n'ai pas spécifié le type d'encodage par une balise et donc il faut le faire "à la main" dans le validateur)

J'ai plusieurs questions :
1) quel est l'encodage le plus courrant ?
Avec SubEthaEdit je peux choisir ce que je veux pour l'encodage texte... Donc en fait ca m'est égal... Je voudrais savoir ce qui se fait habituelement... L'encodage PC ???


2) comment le déclarer ?
J'ai lu dans ce sujet qu'il fallait ajouter une des balises :
Bloc de code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Comment on sait à quoi correspnd quel encodage... Dans mon logiciel je n'ai pas de iso-8859-1, parce qu'ils ont tous des noms... Par exemple il y a un code pour le Mac Roman ??


3) concretement...
Je ne vais pas poser la question de savoir ce que c'est avec présision que les encoding, mais est ce que par exemple ca gère ensuite correctement les caractères accentués (à, é, è...) et qu'il ne faut plus mettre les codes comme &#agrave; ??? ou alors est ce que ca n'a rien à voir ???



Merci pour vos réponses


.
 
jmini a dit:
3) concretement...
Je ne vais pas poser la question de savoir ce que c'est avec présision que les encoding, mais est ce que par exemple ca gère ensuite correctement les caractères accentués (à, é, è...) et qu'il ne faut plus mettre les codes comme &#agrave; ??? ou alors est ce que ca n'a rien à voir ???

Si tu travailles en utf-8, et que tu places la balise dans l'en-tête de ton document html, en effet pas besoin de préciser les symboles pour les caractères spéciaux, si tant est que le serveur également est configuré pour servir de l'utf-8.

Enfin bref, c'est compliqué :D

D'une, tu mélanges deux situations :

- Quand tu travailles en local avec subethaedit (ou tout autre éditeur texte). Le choix de format proposé là, l'est surtout pour pouvoir ouvrir les documents dans différents encodages existant, que tu peux récupérer à droite et à gauche. Par défaut, je te conseille de travailler en utf-8 (on peut le régler par défaut dans les préférences), tous les éditeurs texte aujourd'hui sur toutes les plateformes savent lire et écrire ces fichiers, c'est l'intérêt.

- Après, quand tes fichiers sont sur le serveur web, pour être servis pour l'affichage d'un site web. L'encodage intervient à plusieurs niveaux: dans la configuration du logiciel serveur web (apache, IIS, peu importe, chez ton hébergeur), et dans les en-têtes de tes documents. Si tu ne précises rien dans tes documents en en-tête, c'est l'encodage par défaut du serveur qui est indiqué au navigateur du client, et bien souvent, c'est encore iso-8859-1 dans notre monde occidental, même si utf-8 gagne du terrain.

Donc si tu veux éviter de coder toutes les entités en iso-8859-1 (&agrave; &eacute; et co.), indique bien en en-tête la balise d'encodage utf-8, les accents et caractères spéciaux devraient alors être gérés comme il faut. Si tu ne le fais pas (la balise), le serveur risque de servir tes caractères spéciaux comme s'ils étaient codés en entités html iso-8859-1, mais ils ne le seraient pas, donc, grosse boullie de caractères.

:)
 
Pour l'encodage, un truc m'échappe.

J'écris une page normalement en XHTML dans un éditeur. Je précise le charset uft-8 et j'ajoute une balise xml en tête en plus. Et enfin je sauvegarde la page en précisant encodage uft-8 dans mon éditeur.

Mais que ce soit Safari ou FireFox aucun des deux ne détecte l'encodage et ma page s'affiche donc avec des caratères bizarres. Il me faut alors préciser au browser le type d'encodage (uft-8 dans mon exemple) pour que tout s'affiche normalement.

Comment cela se fait-il ?

Certains sites comme Google sont pourtant détectés par mes browsers comme étant du uft-8.

Je comprend pô :huh:

La page en test pour exemple

Cette page est juste un exemple tiré d'un site en cours de construction.

Mais donc j'ai l'impression que j'ai tout fait comme il faut, donc cela vient du serveur tout pourri de geocities (je l'utilise comme serveur poubelle pour mettre des exemples en ligne) ??? ou il y a un truc que je n'ai pas compris.

Et si c'est bien la faute du serveur, je crois que je vais tout encoder en ISO pour éviter des surprises.

Last but not least : je pourrais aussi mettre tous les caractères spéciaux avec les code ISO mais c'est illisible pour le code source (oui je regarde mon code source parfois !)
Et quelle différence entre &#2 3 3 (j'ai mis des espaces qui n'existent pas pour pouvoir l'afficher) et" &eacute;" pour faire un é ?
 
Je ne sais pas vraiment si ça joue, mais tes déclarations sont coupées par un retour à la ligne. Du coup, même le validator ne capte pas l'encodage par défaut

C'est dans ton template de dotclear que c'est comme ça ? Apparemment, pas d'encodage spécifié dans le header du serveur web, donc, c'est la déclaration dans le header de tes pages qui sera prise en compte de toute façon :

Bloc de code:
$ curl --head http://cf.geocities.com/damien_gayrard/lienuft.html
HTTP/1.1 200 OK
Date: Fri, 05 Aug 2005 17:02:04 GMT
P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
X-Host: w62.geo.scd.yahoo.com
X-INKT-URI: http://cf.geocities.com/damien_gayrard/lienuft.html
X-INKT-SITE: http://cf.geocities.com/damien_gayrard
Last-Modified: Fri, 05 Aug 2005 14:09:17 GMT
ETag: "203389-c55-42f3730d"
Accept-Ranges: bytes
Content-Length: 3857
Connection: close
Content-Type: text/html

Sinon, on verrait cette ligne à la place de la dernière :
Bloc de code:
Content-Type: text/html; charset=utf-8

Autre piste, l'encodage de la base mysql que tu utilises avec dotclear, ça peut jouer aussi, si dotclear ne retraduit pas tout en utf-8, chose que je ne sais pas.
 
Salut.

1-D'ou vient le premier code que tu cites ?
2-La page que j'ai mis en ligne ne fait pas appel à la base de données SQL (j'ai juste extrait un fichier avec un css qui sont autonomes).
3-Comment sais-tu que normalement je fais appel à SQL ?
4-J'imagine que le problème vient du serveur car j'ai mis en ligne sur free cette page et là on voit bien que tout s'affiche normalement malgré le fait que c'est encoder en uft-8 (mes browser détectent l'encodage).
Pour info on peut comparer avec la page "les liens" (sur free) qui elle est encodée en ISO.
J'ai fait cela pour vérifier et je précise que ces 2 pages (contrairement à Edito et Nouvelles) sont indépendantes de la base de données.

Donc ça viendrait bien du serveur non? Geocities étant un serveur de merde qui rajoutte du code à mes pages ???

EDIT :: vous connaissez le couillon ... non ? c'est moi :hein: . j'avais déclaré "uft" au lien de "utf"
Ici ça fonctionne bien mieux !

Merci.
 
Damino a dit:
1-D'ou vient le premier code que tu cites ?

c'est la commande "curl --head http//url_de_la_page" dans le terminal, qui affiche les données brutes envoyées par le serveur web à ton navigateur, avec l'encodage, quand le serveur est bien configuré, en général.

Damino a dit:
2-La page que j'ai mis en ligne ne fait pas appel à la base de données SQL (j'ai juste extrait un fichier avec un css qui sont autonomes).
3-Comment sais-tu que normalement je fais appel à SQL ?
dotclear fonctionne avec mysql, et tu indiques que ton site est "propulsé" par dotclear, alors bon, appelle moi Sherlock si tu veux :D

Damino a dit:
4-J'imagine que le problème vient du serveur car j'ai mis en ligne sur free cette page et là on voit bien que tout s'affiche normalement malgré le fait que c'est encoder en uft-8 (mes browser détectent l'encodage).
Pour info on peut comparer avec la page "les liens" (sur free) qui elle est encodée en ISO.
J'ai fait cela pour vérifier et je précise que ces 2 pages (contrairement à Edito et Nouvelles) sont indépendantes de la base de données.

Donc ça viendrait bien du serveur non? Geocities étant un serveur de merde qui rajoutte du code à mes pages ???
oui, on peut en conclure ça. Ça ne rajoute pas de code, c'est la configuration du serveur qui fait qu'il y a un schmurz quelquepart, à quel niveau, je n'en sais rien, mais c'est bien là que ça se tient.