Alsacreations FAQ version Beta 0.5

Encodage et internationalisation

Comment diagnostiquer un problème d'encodage

Un problème d'encodage se manifeste par le fait qu'une partie ou la totalité des caractères spéciaux (accents, ½, », etc) d'un document ne sont pas affichés correctement(1). Si vous vous trouvez dans cette situation, nous allons voir comment déterminer la source et éventuellement la solution à votre problème.
Attention tout de même à ne pas confondre avec la situation où la police utilisée ne supporte pas les caractères affichés, tout le texte sera alors mal rendu (par exemple sur une page en japonais).


CARACTÉRISATIONS
a) Quelle est l'étendue du problème ? S'agit-il du document entier, d'une partie provenant d'une source externe (fichier inclus, rss, base de donnée, etc) ou d'une partie quelconque ?
b) Arrivez-vous à obtenir un rendu normal dans la partie concernée en forçant le jeu de caractères de votre navigateur(2) (n'essayez pas non-plus toute la liste, les plus communs suffisent souvent à le savoir) ?


IDENTIFICATIONS & SOLUTIONS
Voici les cas les plus courants classés en fonctions des résultats obtenus avec les manipulations ci-dessus, ceux qui ne sont pas listés arrivent très rarement, venez en discuter sur le forum.

Affecte : document entier, Correction: possible
Vous êtes en face d'une déclaration d'encodage erronée, celui renseigné ne correspond pas à celui du document.
Solution : corriger la déclaration (http://forum.alsacreations.com/faq/faq-78-Comment-bien-declarer-l039encodage-des-caracteres-d039un-document-.html)

Affecte : partie externe, Correction: possible
Le problème vient du fait que le jeu de caractères utilisé par la source externe n'est pas identique à celui de votre document. Par exemple vous affichez le contenu d'un fichier XML encodé en UTF8 dans un document iso-8859-1.
Solution : normaliser l'encodage du document et de la source (rendre les deux identique) soit en le modifiant pour l'un des côtés soit en effectuant une conversion lors de l'importation.

Affecte : souvent partie quelconque, Correction: impossible
Ici la situation est plus délicate, il s'agit souvent d'une corruption de l'encodage. Cela peut arriver par exemple lorsque l'on modifie de l'UTF8 à l'aide de fonctions prévues pour de l'ASCII ou de l'iso-8859-1. Dans ce cas l'encodage est altéré et ne correspond plus à rien, devenant du même coup illisible.
Solution : malheureusement il s'agit souvent de cas par cas, les origines étant très diverses. Vérifiez tout de même quels traitements vous effectuez sur le texte en question et si le problème disparaît en les supprimant.


NOTES
1) Par exemple l'affichage d'UTF8 en iso-8859-1 donnera des é à la place des é. Inversement afficher un document iso-8859-1 en UTF8 affichera des ? À la place des accents.
2) Firefox : Affichage->Encodage
Opera : Afficher->Encodage
IE : Page->Codage