Bonjour à tous!

J'ai récemment mise en ligne mon site, sur un hébergeur gratuit (x10hosting) et lors de l'affichage des textes (stocker dans la base de donnée), j'ai un petit problème pour les accents & les caractères spéciaux. Dit comme ça, ce n'est pas très claire je sais.

Je laisse un lien vers le site : http://zewriting.elementfx.com/index.php?p=pages/writing&np=1 (l'url est un peu crade, mais pour la pagination je n'est pas trouvé le moyen de faire un system avec l'url rewriting du genre http://zewriting.elementfx.com/pages/writing/1, si quelqu'un avait la solution, ce serai sympa!).

Je précise que j'ai inclu ces lignes dans le dispatcher :

- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

et avant la requête avec PDO (qui marche en local):

- $PDO->exec("SET CHARACTER SET utf8");

En vous remerciant d'avance de l'aide que vous pourriez m'apporter.
Cordialement, Maxime.

6 réponses


vash60700
Réponse acceptée

UTF8_DECODE ou UTF8_ENCODE serait peut être une piste à suivre.

Autre idée (vu sur JOOMLA), essaye d'ouvrir le fichier PHP avec un notepad ++ et regarde l'encodage du fichier (si celui ci était en ISO, ça passait pas bien sur JOOMLA)...

Essaie d'enlevé <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Splaze
Auteur

Déjà essayé, ça ne résoud en rien le problème :/

As tu essayé

array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')

quand tu creer ton instance de pdo ?

ex:

$pdo = new PDO(
    'mysql:host='.$host.';dbname='.$dbname.';',
    $login,
    $password,
    array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')
);
Splaze
Auteur

Malheureusement j'ai déjà essayer! pas moyen, il ne veut rien entendre!
Je me demande si claquer directement les codes iso ne me poserai pas moins de soucis!

Splaze
Auteur

Exact, j'avais ajouter le texte depuis un backoffice assez basique, en oubliant d'encoder les caractères avant l'upload, maintenant ça marche impeccable.

Merci pour votre aide.