L'UTF8 qu'est que c'est ?
L'UTF-8 est un format de codage de caractères. Sont principal avantage pour le web est qu'il permet de représenter des milliers de caractères de différentes langues et permet donc de créer des sites web qui puissent être multilingue (Français, Chinois, Arabe, Indien...) sans avoir à créer plusieurs versions du site chacune dans l'encodage du pays visé.
Comment développer en UTF-8 ?
Pour développer vos sites web en utf-8, il n'y a rien de très compliqué. Utilisez tout simplement un éditeur de texte compatible avec ce format d'encodage (pour ma part j'utilise notepad++), et d'éditer vos pages sous ce format.
Une fois vos pages éditées vous devez cependant spécifier au client (navigateur) qui va lire votre site que les pages affichées utilisent le jeu de caractère UTF-8. Pour cela il y a deux méthodes:
Spécifier le jeu de caractère
La méthode la plus simple pour spécifier au navigateur que votre site utilise un encodage UTF-8 est de le faire via la meta
content-type à placer dans l'entête de vos pages:
Code XHTML
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Cependant, il se peut que votre serveur soit configuré pour renvoyer un en-tête spécifiant un autre jeu de caractères, et celui ci primera sur la balise meta. Pour éviter ce problème, il faut spécifier l'entête qui sera envoyé au client (navigateur) avec un langage de développement serveur comme le
PHP:
Code PHP
<? header('Content-Type: text/html; charset=utf-8'); ?>
UTF-8, PHP et Mysql
PHP et UTF8
Il est possible que vous ayez à traiter des données dans un encodage différent de l'UTF-8 dans vos pages, certaines fonctions de
PHP pourraient vous être utiles dans cette tâche.
- utf8_encode permet de coder une chaîne au format UTF-8.
- utf8_decode permet de coder une chaîne UTF-8 au format ISO-8859-1.
Sachez cependant que
PHP dans ses versions actuelles (PHP4 et
PHP5) travail nativement avec un jeu de caractère ISO en interne ce qui peut poser des problèmes dans les traitements des chaînes de caractères avec les caractères accentués.
Ces problèmes seront réglés avec la version
PHP6, en attendant il vous est possible de configurer
PHP avec
mbstring
MySQL et UTF8
En ce qui concerne vos bases de données, le SGBD Mysql est lui aussi compatible avec l'utf-8, vous pouvez donc changer l'encodage de vos tables avec une simple requête
SQL
ALTER TABLE 'nom_de_la_table' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Pour que le dialogue entre MySQL et
PHP soit fait en UTF-8 vous devez cependant envoyer une requête à MySQL juste après votre connexion à la base
SET NAMES 'utf8'
Problème courant / Le BOM
Il existe en fait deux versions d'UTF-8, la version avec BOM et la version sans BOM.
Pour faire simple le BOM est une chaîne de quelques caractères qui est placée dans votre fichier, afin que le fichier UTF-8 soit reconnu en temps que tel.
Le problème est que le BOM est incompatible avec
PHP en particulier avec tous les entêtes (les redirections, les sessions, les cookies...). Si vous utilisez le
PHP, je vous conseille d'utiliser la version sans BOM pour la création de vos sites.
Imprimer cette publication