queSi la page affiche des caractères de ce type : "é", "î", "Ã", ...
=> Les données ont été enregistrées au format UTF-8, et le navigateur les affiche en pensant avoir affaire à de l'ISO.
Si la page affiche des caractères de ce type : "�"
=> Les données ont été enregistrées au format ISO, et le navigateur les affiche en pensant avoir affaire à de l'UTF-8.
Si les données sont codées en dur dans la page, voir l'encodage de l'éditeur de texte, l'header apache et la balise meta "charset".
Si les données proviennent de la base, vérifier le format de stockage et les méthodes de lecture et d'insertion (SET NAMES et charset).
Si les données proviennent de l'extérieur (web services, rss, ...), penser à convertir les chaînes de caractère (utf8_encode-decode et fonctions du module iconv).
Ensuite sans rentrer dans les mêmes détails que la présentation du lien tu pourrais prendre l'essentiel à savoirVoici quelques problèmes courants et leur solution :
Problème : Apparition de caractères tels que "Ã", "é" ...
Solution : Lorsque des caractères de ce type apparaisse, c'est que votre donnée est encodée en utf8 mai que le navigateur tente de lire en mode "normal" (latin1 ou iso-8859-1). Pensez à spécifier le méta html vu au dessus.
Problème : Apparition de caracètères comme "�" ...
Solution : Lorsque ce caractères apparait, c'est en fait l'inverse, notre navigateur est réglé pour lire de l'utf8 (via le méta html ou la fonction header() de php) mais tente de lire du texte qui est encodé normalement (latin1 ou iso-8859-1). Pensez à encoder votre fichier en utf8 ou utilisez la fonction utf8_encode() si vos données proviennent de l'extérieur (base de données, import de fichiers etc ...).
C'est le même lien que je m'apprêter à poster ^^Pour illustrer mes propos voici un lien que je trouve mieux structuré tout en étant plus complet http://electron-libre.fassnet.net/utf8.php
Voici donc un plan à compléter/améliorer... Vous pouvez commencer à vous concerter sur ce que vous voulez voir apparaître dans une telle FAQ, et faire un plan ou une liste de questions.
Code : Tout sélectionner
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
...
</head>Code : Tout sélectionner
AddDefaultCharset UTF-8
#ou
AddDefaultCharset Offheader('Content-Type: text/html; charset=UTF-8');
Cette dernière solution permet un meilleur portage de vos scripts.echo mb_internal_encoding(); //affiche ISO-8859-1
echo mb_strlen('aé');// affiche 3
echo mb_strlen('aé',"utf-8");// affiche 2
mb_internal_encoding("UTF-8");// indique d'utiliser l'encodage UTF-8
echo mb_strlen('aé');// affiche 2mysql_select_db($database, $connection);
mysql_query("SET NAMES 'utf8'");
Vos tables doivent également être créées en utilisant l'Interclassement utf8_general_ci via phpMyAdmin ou dans une fenêtre sql :
Code : Tout sélectionner
CREATE TABLE IF NOT EXISTS `membres` (
`pseudo` varchar(100) NOT NULL,
`pass` varchar(100) character set utf8 collate utf8_bin NOT NULL,
PRIMARY KEY (`pseudo`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Une raison à cela pourrait être que vous travaillez en mode "décousu", avec des morceaux répartis sur plusieurs pages (difficile d'imaginer l'ensemble). Tu sembles être le seul avec yaug à avoir une vision globale du tuto finiBon ça se bouscule pas trop pour les remarques...