Bonsoir,

J'ai repris le développement d'un site Web effectué par une autre personne. Ce site est censé prendre en charge 4 langues : le français, l'anglais, l'allemand et le turc.
Or, dans l'état dans lequel j'ai reçu le site, cela ne fonctionne pas du tout : toutes les pages sont déclarées avec un charset iso-8859-1 aussi aberrant que cela puisse paraître.

J'ai donc décidé d'opter pour un encodage UTF-8. Seulement, et c'est là un des problèmes, la base de données contient des caractères spéciaux bruts (é,è par exemple). Le second problème c'est que je ne suis pas très au clair à propos des encodages et des caractères spéciaux.

Ma question est donc la suivante : dois-je convertir tous les caractères spéciaux de la base en leur équivalent XHTML (via un script PHP par exemple) avant d'appliquer la méthode de ce sujet ou puis-je directement l'appliquer afin d'encoder les caractères spéciaux ?

D'avance merci de répondre à une question sans doute mainte fois rebattue...
kalipka a écrit :
dois-je convertir tous les caractères spéciaux de la base en leur équivalent XHTML (via un script PHP par exemple)

Non.
Si tes données sont en ISO-8859-1 et que tu veux les convertir en UTF-8, ça ne sert à rien de transformer tous les caractères non-ASCII en leurs entités HTML respectives.

As-tu lu les articles indiqués dans le sujet [Pré-requis] Notions de base sur l'encodage des caractères?
Bonjour,

Tout d'abord, merci de votre réponse. J'ai bien lu ce articles avant de poster ce sujet. Mais quelque chose m'échappe encore... J'ai exporté ma base en UTF-8 à l'aide de la méthode décrite dans l'article mentionné mais je ne vois aucun changement dans ma base et des erreurs apparaissent toujours à l'affichage ('?' au lieu de 'é' par exemple) alors que le charset des pages est UTF-8...
Tu as fait un export de ta base de données, que tu as enregistré en UTF-8 avec un éditeur de code, puis tu l'as injecté dans une base de données vide?

Les tables et colonnes de tables ont bien été recréées en UTF-8?
La connexion entre le script du site et la base de données se fait bien en UTF-8 (via un "SET NAMES utf8" notamment)?
Bonjour,

Je n'avais pas prêté attention à la connexion entre le script et la base de données. Je vais modifier ça.

Après importation sur le nouveau serveur, est-ce normal que je rencontre toujours des %uxxxx (%u015F par exemple) dans les entrées des tables ?
Est-ce que ce sera converti lors de l'interprétation du navigateur ou est-ce que quelque chose n'a pas fonctionné ? (je précise que ces %uxxxx étaient déjà présent avant l'exportation/importation)

D'avance merci.
Je ne crois pas qu'un texte du type %uxxxx (en ASCII) corresponde à un quelconque encodage. Ce serait plutôt une écriture dite «échappée», qui représente en ASCII une valeur hexadécimale donnée. Par exemple la lettre «É» peut être échappée en U+00C9 ou \u00C9.
Une adresse intéressante:
http://people.w3.org/rishida/scripts/uniview/conversion.php

Si tu as ce type de chaines de caractères dans tes contenus, c'est qu'une fonction quelque part modifie les données saisies pour les stocker sous cette forme. Pour peut-être faire l'opération inverse avant restitution du contenu sur le site...
Il doit manquer la conversion puisque cela s'affiche tel que.

Mais merci pour le tuyau, c'est très certainement ça !