Syndication & RSS

  • Feed RSS 2.0
  • Feed ATOM 1.0
  • Feed RSS 2.0
Samedi 15 septembre 2007
Tout le monde utilise un clavier, et bizarrement, on oublie assez facilement que les claviers des autres pays sont différents.  Prenons pour exemple le clavier espagnol qui contient des caractères spécifiques.

Evidement, une charset n'est pas un clavier... quoi que  :
En fait, une charset est une table de définition (informatique) de chaque caractères d'une langue. En français, le A prendra le numéro 1 et le B le numéro 2 (par exemple).

Jusque là : tout est simple...mais certaines langues contient des tables de caractères qui ne sont pas occidentaux (ni même francophone). Le Mandarin, le Russe, l'Arabe ne s'écrivent pas avec notre alphabet.

Mais, comme l'informatique évolue plus vite que les langues et leurs symboles, il a fallut faire évoluer tout cela pour tenter d'harmoniser les échanges electroniques.

Stockage de données : l'enjeux
L'encodage des données, depuis que l'informatique est "tous publics", encode les données en binaire (0 et 1), ces données , par paquet de 8 bits donnent 1 octet. Cet octet représente 1 lettre de 1 alphabet. Avec l'alphabet Français cela donnera un E par exemple. Mais si vous lisez ce binaire avec une autre machine (configurée en Chinois par exemple) cela donnera un autre symbole...

Aussi, le code binaire découpé en octets produit des résultats différents suivant la langue dans laquelle est configurée votre ordinateur.

Méta données d'encodage :
Pour éviter de lire du Chinois en Francais, il faut stocker la langue dans laquelle est rédigée ce binaire. On appelle cela une CHARSET. C'est elle qui précise l'encodage d'un document ainsi que la langue dans laquelle est rédigé le document.
spanish-keyboard.gif
Conversion de Charset :
Des initiatives ont permis la mise en place de Charset internationales comme UTF et UNICODE. Ces quasi-normes ont regroupées toutes les langues et leurs symboles en une table unique de plusieurs milliers de symboles (je simplifie...).

Très logiquement, cette table nécessitait de donner un numéro plus élevé à chacun des signes représentés (puisqu'elle regroupe toutes les langues). Résultat le code UTF de "é" n'est pas le code ISO-8859-1 (europe occidentale - Français) de "é". De plus l'encodage binaire des alphabets en UTF s'effectue sur 3 octets (au maximum). C'est donc un véritable cryptage de texte.

Aussi, il est possible de convertir un texte de ISO-8859-1 vers UTF-8 mais extrêmement aléatoire de faire l'inverse sans une table de conversion très efficace.

glif.jpgAlors pourquoi choisir ISO ou UTF :
Réellement : 0 impact sur le développement, 0 impact sur le référencement... mais des kilos d'ennuis avec les utilisateurs de votre site uniquement parce que Microsoft joue les troubles fêtes dans cette universalité.

Et oui, Msoft dispose de ces propres charsets. Aussi, si vous laissez le soin à un utilisateur winbovvs d'ajouter des articles, il risque de fournir des données encodées 'windows-1252" au lien de fournir du UTF-8 ou ISO-8859-1. Résultat  : des données mal codées dans les bases de données...et en ligne.

C'est particulièrement vrai pour les outils de CMS ou les utilisateurs font "copier coller" depuis word...sic !

Pour votre site, toujours vérifier que :
- l'ensemble des données (y compris interne SQL) sont bien dans la même charset. (1)
- la configuration de votre serveur web (qui peut transmettre des entetes avec une charset différente par défaut).
- vos pages contiennent la bonne balise meta content="text/html; charset=XXX" http-equiv="content-type"
- que le contenu de vos pages est bien conforme à votre charset choisie. (1)
- que vos métas sont aussi encodés correctement :-)

Le piège des caractères &#xxx;  :
Ces caractères sont intégrés au code html pour définir un code de caractères. le "xxx" représente le numéro dans la table de codage de votre page web. Aussi, si vous déclarez une page "UTF", vous devrez coder le "é" avec l'encodage numérique de l'utf (qui n'est pas celui de l'iso - cqfd).

(1) MYSQL 5 et supérieur utilise le préfixe de CHARSET=XXX  et COLLATE=XXX pour définir la charset et l'encodage des données. Si vous utilisez "XXX_LATIN_XX", vous êtes conforme à ISO-8859-1, si vous utilisez XXX_UTF_XXX, vous êtes en unicode. La conversion ISO vers UTF pour le Français est utf8_swedish_ci.

(2) Utilisez la fonction "voir source " du navigateur puis "encodage des caratères" et changer d'encodage pour vérifier.


Pour aller plus loin :

en.wikipedia.org/wiki/Character_encodings_in_HTML
par verticrawl publié dans : Indexation - crawling
ajouter un commentaire commentaires (0)    créer un trackback recommander
Blog : Photo sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur avec TF1 Network - Signaler un abus