Caratteri speciali in WordPress UTF-8
Ho un problema riguardante i caratteri speciali che appaiono corrotti nel front-end. Principalmente vengono convertiti in punti interrogativi, o qualcosa tipo �?).
Esempio - Frédèric diventa Fr�d�ric.
Alcuni fatti che mi hanno lasciato perplesso:
Questa installazione WordPress è su una macchina LOCALE e condivide il server con almeno altre 40 installazioni - nessuna delle quali ha questo problema.
Questa installazione WordPress condivide anche lo stesso database delle altre.
Il mio file wp-config ha definito il collate e il charset.
Il database sembra a posto, perché quando visualizzo il post nell'EDITOR (back end) - tutto è corretto, il problema è solo nel FRONT end.
- Il database sembra a posto (2), aprendo il post in phpMyAdmin e controllando il valore diretto - tutti i caratteri sono corretti.
Questo problema NON è relativo all'encoding del browser/os, è stato verificato su 4 macchine diverse, 3 sistemi operativi e 9 browser..
Ho provato tutte le soluzioni che conosco dalla mia esperienza passata, che includono:
- controllare il wp-config (è ok, utf-8 definito, collate ok)
- Controllare il database - tutto UTF-8
- controllare il mio header
(<?php bloginfo('charset'); ?>
) - che viene renderizzato correttamente come utf-8 con markup valido. - Aprire tutti i file del tema nel mio editor, convertire l'encoding in UTF-8 senza bom e salvare.
Mi sono perso qualcosa? Qualche idea??

Modifica:
Hai <meta charset="utf-8" />
nel tuo tag <head>
? Un utente qui ha risolto un problema simile di codifica dei caratteri aggiungendo questo elemento.
In effetti ci sono molti risultati su Google che compaiono cercando utf-8 character encoding in wordpress
.
Inoltre, incollare il testo nella vista HTML dell'editor e salvarlo fa qualche differenza?
Quanto segue non è una buona idea come spiegato da @toscho nei commenti.
Non sono sicuro che questo sia il metodo migliore per risolvere il problema, ma questo ha funzionato per il sito web di uno dei miei clienti.
Cerca queste due righe nel tuo file wp-config.php
:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
E commentale in questo modo:
//define('DB_CHARSET', 'utf8');
//define('DB_COLLATE', '');

@toscho Corretto, sto cercando in rete una soluzione migliore e aggiornerò presto la mia risposta.
