La communauté ALL HTML c'est 60191 membres à ce jour dont 0 inscrits aujourd'hui et 14 depuis une semaine.

Encodage UTF-8

Photo de crocxx Article publié le mercredi 05 mars 2008 par crocxx.
Cet article est classé dans les catégories « HTML, Internet et Intranet, PHP, web 2.0, XHTML »

Réalisation d'un site internet en utilisant le codage UTF-8

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 les 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:

[h1]Spécifier le jeu de caractère[/h1]
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


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.



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


[htitre]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ère 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 trop le choix ^^) donc d'utiliser la version sans BOM pour la création de vos sites.

Sources de l'information : http://www.zone-webmasters.net

Plus d'informations :


VOS COMMENTAIRES ...

Commenter cette publication

Photo de luba Commentaire publié le mardi 03 juin 2008 à 15 h 19 par luba
Bonjour, que faut-il faire pour que javascript supporte et traite correctement les données utf-8 également ?
Photo de crocxx Commentaire publié le jeudi 05 juin 2008 à 13 h 10 par crocxx
Travaillant exclusivement avec l'utf8 depuis un moment je n'ai jamais eu de problème avec le JavaScript.

Le JavaScript étant encodé en utf8 comme le HTML sur mes pages je ne pense pas que le problème ce pose.
Photo de cwdev Commentaire publié le vendredi 12 septembre 2008 à 21 h 59 par cwdev
Très bon tuto, cependant il serait bien d'ajouter qu'il faut préciser à mysql dans quel langage on travaille même si tout est en utf8 à l'aide de :

mysql_query('set names utf8');


.cwdev
Photo de Xavxav Commentaire publié le lundi 23 mars 2009 à 11 h 35 par Xavxav
A noter que les éditeurs HTML les plus courants, comme Dreamweaver sont capables produire des pages en UTF-8.
Photo de arrifinu Commentaire publié le jeudi 05 novembre 2009 à 03 h 50 par arrifinu
j'ai essayé tout le net, mais je n'ai rien trouvé.
J'ai trouvé que pour enregistere sous UTF-8 sans BOM je dois utiliser NotePad++ et je l'ai téléchargé. Mais en ouvrant le fichier PHP sous NP++ je ne trouve pas ou choisir l'encodage. Mais sur Bloc Notes je trouve ce choix, mais je ne trouve aucun UTF-8 sans BOM, je ne trouve que UTF-8 et troix autres choix.
Où trouvé ce sans BOM? Et comment disent les gens que ce sans BOM est trouvé sur NP++ au lieu que je trouve aucun choix d'encodage.
Merci pour votre réponse
Photo de arrifinu Commentaire publié le jeudi 05 novembre 2009 à 03 h 54 par arrifinu
ça y'est, j'ai trouvé
merci en tout cas
Photo de devlogisite Commentaire publié le dimanche 27 décembre 2009 à 20 h 50 par devlogisite
Bonjour,
Bon article ça me parait mais il y a une petite methode qui fera le tour....
On créé un fichier connect.php par exemple où on y met le code suivant et on l'insère dans l'emplacement voulu pour lire la base de données avec l'encodage spécifié. En effet :

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error());
mysql_select_db("dbase"); // Sélection de la base
?>

Bien sûr vous devez changer les paramètres selon vos besoins!

Bon Dev.
Photo de taourirt Commentaire publié le vendredi 29 janvier 2010 à 11 h 53 par taourirt
très bon article
Photo de taza Commentaire publié le mercredi 03 mars 2010 à 09 h 48 par taza
Merci crocxx
Photo de nours312 Commentaire publié le mercredi 03 mars 2010 à 10 h 59 par nours312
ça pu la remontée de lien !...

Commenter cette publication

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

Forums de discussions associés

Discutez et échangez sur ce thème dans nos forums XHTML - HTML - CSS, PHP - SQL, XHTML - HTML - CSS.

Liens sponsorisés

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.