Gérer correctement le codage des caractères (pour éviter d'avoir des caractères bizarres dans le texte de son site web Smiley cligne ) demande d'avoir quelques notions de base.

Pour cela, une solution simple: parcourir les articles d'Alsacréations!

Notamment, on pourra lire:
- Comment bien déclarer l'encodage des caractères d'un document ?
- Charset Iso-8859-1, iso-8859-15, utf-8, lequel choisir ?
- S'y retrouver entre ASCII, ANSI, Latin1, ISO-8859-1, MacRoman, Windows-1252, etc.

Avant de poser toute question sur le forum, pensez à lire ces explications. De plus, vous pouvez effectuer une recherche sur le forum en la limitant au salon Encodage et internationalisation.

Pour approfondir, on pourra lire Introduction aux jeux de caractères (Openweb), et suivre les liens complémentaires donnés dans cet article.
Modifié par fvsch (17 Oct 2011 - 12:59)
Bravo pour cette FAQ où l'on trouve enfin quelques généralités éclairant les subtilités du Web...

Toutefois, pour s'y retrouver encore mieux (entre ASCII, ANSI, Latin1, ISO-8859-1, Windows-1252, etc.)
il serait fort utile de savoir pour quels motifs : « Il est déconseillé d'utiliser ANSI/Windows-1252 pour le Web. » Ce codage semble, en effet, présenter l'avantage de disposer non seulement du symbole de l'euro, mais encore des caractères manquants qui permettraient, par exemple, de ne pas ommettre le tréma sur le Y de l'HAY-LES-ROSES !
Pour Windows-1252: il a effectivement quelques avantages (que l'on retrouve par exemple avec ISO-8859-15), et dans l'absolu on peut tout à fait l'utiliser correctement. Le problème, qui n'est pas lié à l'encodage lui-même, c'est qu'il est souvent mal déclaré: soit déclaré en ISO-8859-1 (ou latin1); soit, erreur fréquente, pas déclaré du tout. Du coup un navigateur tel que Firefox ou Internet Explorer en français se retrouve à afficher du Windows-1252 comme de l'ISO-8859-1 (encodage par défaut), et le souci sera plus difficile à déceler qu'avec de l'UTF-8.

Ce que l'on peut clairement déconseiller, par contre, c'est d'utiliser un encodage déclaré par un logiciel comme étant de l'«ANSI», car là impossible sans tests corrects de savoir si on a affaire à du Windows-1252 (ou CP-1252), de l'ISO-8859-1, ou encore autre chose. Et donc impossible de déclarer le bon encodage à coup sûr.
pour parler d'un piège fréquent a propos du Windows-1252 et qui m'est arrivé.

c'est de penser éditer son source en iso-8859-1 alors qu'en fait on écrit du Windows-1252.
vu la grande ressemblance.

par exemple avec notepad++ , on peut voir que la configuration de base est l'ANSI. et que l'option iso-8859-1 n'est même pas proposé. ( du moins avec l'installation de base)

donc si je convertie mon code et que je veux voir des symboles euro €.

en php je ferais plutôt

$str = mb_convert_encoding($str, "UTF-8", "Windows-1252");

que

$str = mb_convert_encoding($str, "UTF-8", "ISO-8859-1");

ou

$str = utf8_encode($str);

Modifié par CPascal (02 Apr 2010 - 22:23)
Et si on a le sens du détail... contrôlez l'encodage avant inclusion Smiley cligne !

if (mb_check_encoding(file_get_contents($file_path), 'UTF-8') == false) {
	echo "Le fichier n'est pas en utf-8 " . $file_path;
	die();
}