web-dev-qa-db-fra.com

Caractères spéciaux dans WordPress UTF-8

J'ai un problème avec les caractères spéciaux qui apparaissent en désordre sur le front-end. principalement le convertir en points d'interrogation, ou quelque chose comme?)

Exemple - Frédèric devient Frédéric.

quelques faits qui m'ont rendu perplexe:

  • Cette WP installation est effectuée sur une machine LOCALE et partage le serveur avec au moins
    moins 40 autres installations - aucune d’entre elles n’a ce problème.

  • Ce WP install partage également la même base de données que les autres.

  • Mon fichier wp-config a l'assemblage et le jeu de caractères définis.

  • La BD semble bien, car lorsque je regarde la publication dans l’EDITEUR (tout au fond) - tout est correct, le problème ne concerne que le bout AVANT.

    • La base de données semble aller bien (2), ouvrant le post dans phpMyAdmin et vérifiant la valeur directe - tous les caractères vont bien.
  • Ce problème n'est PAS un encodage navigateur/système d'exploitation, il a été vérifié 4
    différentes machines, 3 systèmes d'exploitation et 9 navigateurs ..

J'ai essayé toutes les solutions que je connais d'expérience, notamment:

  • vérifiant le wp-config (c'est ok, utf-8 défini, collate ok)
  • Vérification de la base de données - tout UTF-8
  • vérification de mon en-tête (<?php bloginfo('charset'); ?>) - qui s'affiche correctement en tant que utf-8 avec un balisage valide.
  • Ouvrez tous les fichiers de thème dans mon éditeur, convertissez le codage en UTF-8 sans démarrer et enregistrez.

Ai-je raté quelque chose? Des idées ??

5
user13279

Modifier:

Avez-vous <meta charset="utf-8" /> dans votre tag <head>? Un utilisateur ici / a corrigé un problème similaire avec le codage de caractères en ajoutant ceci.

Il existe actuellement de nombreux résultats Google qui apparaissent à la recherche de utf-8 character encoding in wordpress.

De plus, le collage du texte dans la vue HTML de l'éditeur et sa sauvegarde font-ils une différence?


Voici une mauvaise idée, comme l'explique @toscho dans les commentaires.

Je ne sais pas si c'est la meilleure méthode pour résoudre le problème, mais cela a fonctionné pour les sites Web de l'un de mes clients.

Recherchez ces deux lignes dans votre fichier wp-config.php:

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

Et commentez-les comme suit:

//define('DB_CHARSET', 'utf8');
//define('DB_COLLATE', '');
2
Jared

Utilisez-vous htmlentities () pour échapper à votre sortie par hasard? Si c'est le cas, vous devez définir "UTF-8" comme troisième paramètre.

0
bradt