Zone Webmasters - Encodage UTF-8

> Accueil > Publications > Inclassables > Encodage UTF-8

Encodage UTF-8

Par: Crocxx | Categorie: Inclassables

L'UTF8 qu'es 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 par j'utilise notepad++), et d'éditer vos pages sous ce format.

Une fois vos pages édités vous devez cependant spécifier au client (navigateur) qui va lire votre site que les pages afficher utilise 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" />
Il se peu cependant que votre serveur soit configuré pour renvoyer une entête spécifiant un autre jeu de caractère, et celui si primera sur la balise meta, pour éviter ce problème il vous faut spécifier l'entête qui sera envoyer au client (navigateur) avec un langage de développement serveur comme le php:

Code PHP
<? header('Content-Type: text/html; charset=utf-8'); ?>

UTF8, 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 pourrait vous être utile dans cette tache.
  • 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 actuels (PHP4 et PHP5) travail nativement avec un jeux de caractère ISO en interne ce qui peu poser des problèmes dans les traitements des chaines 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 base 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 UTF8 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 faite 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 placer 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 toutes les entêtes (les redirections, les sessions, les cookies,...), si vous utilisez le PHP je vous conseil (et vous n'aurez pas tellement le choix ^^) d'utiliser la version sans BOM pour la création de vos sites.

Imprimer cette publication




Commentaires

Commentaires

L'avantage avec l'encodage UTF-8 c'est que l'on peut enregistrer absolument tous les caractères même les caractères : 复第.
Pour savoir le fonctionnement par rapport à l'ASCII : http://fr.wikipedia.org/wiki/UTF-8

Par ComandoCool

Pas facile de s'y retrouver entre le Jeu de caractères utilisé pour MySQL, le Content-Type du fichier et le programme à utiliser pour encoder au bon format.
Merci Crocxx pour ton coup de main ;)

Par C00lman

Quelle galère l'utf8 :)

Par 01JiiN



3 commentaires

Ajouter un commentaire

Vous devez être membre pour commenter cet article.

>> Inscrivez vous




Faire un lien | Partenaires ©2005-2008 37Studio.fr Tous droits réservés Contact | RSS | Plan | Haut