Caractere speciale în WordPress UTF-8
Am o problemă legată de caracterele speciale care apar distorsionate pe front-end. În principal, acestea sunt convertite în semne de întrebare sau ceva similar cu �.
Exemplu - Frédèric devine Fr�d�ric.
Câteva detalii care m-au derutat:
Această instalare WordPress este pe calculatorul LOCAL și împărtășește serverul cu cel puțin 40 de alte instalări - niciuna dintre ele nu are această problemă.
Această instalare WordPress folosește aceeași bază de date ca și celelalte.
Fișierul meu wp-config are definit corect collate și charset.
Baza de date pare în regulă, deoarece când vizualizez postarea în EDITOR (back-end) - totul este corect, problema apare doar pe FRONT-end.
- Baza de date pare în regulă (2), verificând direct valoarea în phpMyAdmin - toate caracterele sunt afișate corect.
Această problemă NU este legată de encoding-ul browserului/sistemului de operare, a fost verificat pe 4 calculatoare diferite, 3 sisteme de operare și 9 browsere.
Am încercat toate soluțiile pe care le cunosc din experiența anterioară, inclusiv:
- Verificarea wp-config (este ok, utf-8 definit, collate ok)
- Verificarea bazei de date - tot UTF-8
- Verificarea header-ului
(<?php bloginfo('charset'); ?>
) - care se afișează corect ca utf-8 cu markup valid. - Deschiderea tuturor fișierelor de temă în editor, convertirea codării în UTF-8 fără BOM și salvarea.
Am omis ceva? Aveți idei?

Edit:
Aveți <meta charset="utf-8" />
în tag-ul <head>
? Un utilizator aici a rezolvat o problemă similară legată de codificarea caracterelor prin adăugarea acestui meta tag.
Există de fapt multe rezultate pe Google care apar la căutarea pentru utf-8 character encoding in wordpress
.
De asemenea, dacă lipiți textul în vizualizarea HTML a editorului și îl salvați, face vreo diferență?
Următoarea soluție nu este atât de bună, după cum a explicat @toscho în comentarii.
Nu sunt sigur dacă aceasta este cea mai bună metodă pentru a rezolva problema, dar aceasta a funcționat pentru unul dintre site-urile clienților mei.
Găsiți aceste două linii în fișierul wp-config.php
:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
Și comentați-le astfel:
//define('DB_CHARSET', 'utf8');
//define('DB_COLLATE', '');

@toscho Corect, caut pe internet o soluție mai bună și voi actualiza răspunsul meu în curând.
