La notion de jeu de caractères (charset en anglais) est une notion primordiale pour tout développeur Web. Il s’agit d’un ensemble défini de caractères tel que l’ASCII (American Standard Code for Information Interchange – le format US) et le plus récent que nous utilisons de nos jours, l’Unicode.
L’encodage de jeu de caractère permet le stockage des données sous forme d’octets. En effet, cela facilite la compréhension par un ordinateur. Cependant, chaque jeu de caractères dispose de différentes possibilités. Chaque possibilité pouvant avoir certains avantages mais aussi certains inconvénients.
Si vous prenez par exemple l’Unicode, vous disposez des possibilités suivantes :
Dans la mesure du possible il est préférable d’utiliser l’Unicode avec l’encodage UTF-8. En effet, ce dernier est compatible avec tous les navigateurs Web, de plus il vous permet de gérer toutes les langues, du français à l’anglais en passant par le japonais.
Dans la mesure où vous disposez d’un site statique codé uniquement en HTML, il est nécessaire de s’assurer que vous sauvegardez bien vos fichiers en UTF-8. En effet, certains Editeurs tel que Notepad dispose de plusieurs possibilités d’encodage lors de l’enregistrement d’un fichier.
Cependant si votre site utilise plusieurs technologies tels que des bases de données, du HTML, PHP, XML et d’autres types de langage, il est primordial de bien maîtriser l’ensemble des chaînes de conversions de caractères sur chacune des technologies utilisées. Dans le cas contraire, vous risqueriez de vous retrouver avec des caractères corrompus tel que les accents remplacés par des caractères spéciaux.
Vous avez créé un site Web dit statique (utilisant uniquement le codage HTML). Vous avez très certainement suivi les indications se trouvant dans le paragraphe précédent et sauvegardé votre fichier au format UTF-8, ce qui est une bonne chose. Désormais la question est de savoir comment le navigateur va interpréter votre fichier. Votre navigateur est-il en mesure de définir le type d’encodage utilisé ?
Voici un exemple de l’interprétation qu’en font la plupart des navigateurs :
Dans ce cas, l’information sera la suivante : text/html :UTF-8 (cela indiquera au navigateur que la page Web que vous visualisez est encodé en UTF-8
Dans le cas contraire, l’information sera la suivante : text/html (aucune information sur le type d’encodage n’est fournie).
<meta http-equiv= « content-type » content= « text/html » ; charset= « utf-8 » />
Lors de la visualisation de votre page, il se peut que certains caractères tels que les accents soient corrompus. Si cela vous arrive, il sera nécessaire d’effectuer une analyse complète du problème afin de pouvoir le résoudre. L’analyse comprend les points suivants :