Bonjour,

J'ai un petit soucis avec des données provenant d'une base.
Tous les caractères spéciaux sont remplacés par des ?. Je soupçonne un soucis d'encodage mais je ne vois pas d'où il pourrait venir.

Ma base est en UTF8_General_CI
Ma table est en UTF8_General_CI
Mes champs sont en UTF8_General_CI
Mes pages sont converties en UTF8 depuis notepad++

Mon entête:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta http-equiv="Content-Type" content="text/plain; charset=utf-8" />

Voilà, pour moi tout coïncide mais tout porte aussi à croire que j'ai une entête ISOXXX quelque part, je ne vois rien sur firebug.

Si quelqu'un à une idée, je suis vraiment preneur, c'est la première fois que ça m'arrive et honnêtement là, ça tombe mal.

Merci pour votre aide.

Brice.

4 réponses


amethyste
Réponse acceptée

Notepad++ > encodage > Encoder en UTF8 sans BOM

Mandra
Auteur
Réponse acceptée

Relis mon message ^^.

Sinon, j'ai trouvé ma solution, j'avais oublié de précisé à PDO de se connecter en UTF8 lors de mon script de connexion.

PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8 règle le soucis.

C'était une piste à explorer dans la mesure où notepad++ propose à la fois UTF8 et UTF8 sans BOM. Le BOM rajoutant un caractère en début de fichier, il arrive que cela génère des résultats incohérents lors de l'affichage.
Dans ton message, il est précisé que tu as converti en UTF8, j'ai tout de suite pensé à cette solution.

Mandra
Auteur

Aucun soucis, il n'y avait aucune animosité dans mon post ;)
Et effectivement ça aurait pu venir de là.