Encodage
Encodage c'est quoi?
L'encodage est un jeu de caractères. Si deux documents s'échangent des données dans un encodage différent, il se peut que des caractères incorrectes s'affichent. Les plus utilisés en France sont l'encodage ISO-8859-1, ISO-8859-15 et UTF8.ISO-8859-1 | Encodage Latin-1 / Europe occidentale |
---|---|
ISO-8859-15 | Encodage Latin-1 / Europe occidentale contient plus de caractère dont le symbole (€) |
UTF8 | Pour faire simple cet encodage est le plus complet |
UTF8
En 2013, plus de 75% des sites internet utilisent l'encodage utf8, par expérience, je peux vous conseiller de ne travailler qu'avec cet encodage.Le problème de l'encodage c'est qu'il faut le spécifier à beaucoup d'endroits:
Au niveau d'apache dans .htaccess :
AddDefaultCharset UTF-8
Dans un fichier PHP:
<?php header('Content-Type:text/html;charset=utf-8'); ?>
Dans un fichier HTML:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
Pour changer l'encodage MySQL vous devez éditer le fichier /etc/my.cnf :
[mysqld] |
#Set the default character set |
default-character-set=utf8 |
#Set the default collation |
default-collation=utf8_general_ci |
Ajax
Il faut savoir que tous les retours ajax sont envoyés en UTF-8, si votre page est encodée dans un autre jeu de caractères vous devez soit changer l'encodage du script, soit indiquer un autre encodage en PHP, soit utiliser une fonction de traduction comme› utf8_decode() qui convertit une chaine encodé en UTF8 en ISO-8859-1 ou
› utf8_encode() qui convertit une chaine encodé en ISO-8859-1 en UTF8.
Le problème de cette technique, c'est par exemple le caractère € qui n'est pas reconnu.
UNE QUESTION SUR L'ARTICLE?