Diagnostic rapide des problèmes d'encodage UTF-8 et autres

Diagnostic rapide des problèmes d'encodage UTF-8 et autres (le 17/05/2011)

Posons-le une bonne fois pour toutes !

  • Si la page affiche des caractères bizarres de ce type : "é", "î", "Ã", …, les données sont 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 sont au format ISO, et le navigateur les affiche en pensant avoir affaire à de l'UTF-8.
  • Si vous voyez des choses du genre un petit carré avec des chiffres dedans, les données sont en WINDOWS-1252, et le navigateur les affiche en UTF-8.

Pensez à bien vérifier :

  • Le codage des fichiers (sans BOM bien sûr !), le meta charset et le header envoyé par Apache (pour ce dernier, modifiez-le via PHP, la configuration d'Apache ou un htaccess),
  • vos bases de données (le codage et l’interclassement), et les méthodes de lecture de ces dernières (SET NAMES 'utf8'; souvent oubliée celle-là),
  • et si les données proviennent de l'extérieur, pensez à utf8_encode et utf8_decode.

Si vous ne voulez pas oublier quelque chose en route (dans vos bases de données, dans vos interfaces d'administration, etc.), utilisez une phrase du genre « L’inutile et l'horrible test a été fait… »… deux types d'apostrophes, les accents, ça aide à vite voir où les problèmes les plus courants peuvent se situer.

P.S : si vous ne comprenez rien à ce que je viens d'écrire, allez lire Changer de jeu de caractère pour UTF-8 sur Openweb… écrit par votre serviteur.

Permalien :

Flux RSS des commentaires de ce billet : https://www.nicolas-hoffmann.net/rss/commentaires.php?id_news=1387

6 commentaires

Posté par Jihaisse le 17/05/2011 à 17:26:02
C'est toujours le bordel l'encodage.
Le mieux : avoir toute la chaine (de l'éditeur, en passant par le framework) qui est en utf-8.
Posté par Alf le 17/05/2011 à 19:45:57
Ca fait jamais de mal de la rappeler....

@ Jihaisse : tout à fait d'accord...Mais c'est plus facile à dire qu'à faire. Il y a toujours un truc qu'on "zappe" (enfin, moi, ça m'arrive de temps en temps)

@ Nico : Tu peux rajouter un truc pour lequel je t'avais sollicité une fois : enregistrer les fichiers sources en "UTF-8 sans BOM" plutôt qu'avec "BOM"... Ca m'avait valu une bonne prise de tête !
Posté par Nico le 08/06/2011 à 21:50:29
Jihaisse : idéalement oui, autant que toute la chaine soit en UTF-8, c'est grosso modo ce que je recommande dans l'article sur Openweb. (sourire)

Alf : ou tout simplement on reprend un site codé avec les pieds... ça m'arrive de temps en temps... c'est vraiment pas triste. %-
C'est rajouté pour le BOM. (clin d’oeil)
Posté par Da Scritch le 05/01/2012 à 10:27:53
En ai eu un exemple en début de semaine dans une vieille base SQL à convertir. Dû créer un filtre détectant les doubles UTF-8 pour reconvertir en UTF-8 normal les entrées avec chaînes doublement encodées par erreur.
Posté par Nico le 05/01/2012 à 10:31:29
Ah, voilà un cas original, d'habitude, j'ai plutôt des contenus mal encodés provenant de vieux sites. (sourire)
Posté par antuca le 13/01/2014 à 23:08:51
je veux sortir de (UTF-8)AIDE SVP...MERCI

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.