Takže som absolvoval “famous 5-minute install” blogovacieho nástroja WordPress a hneď som skúsil napísať úvodný príspevok. Po uložení ma čakalo malé nemilé prekvapenie – problém s diakritikou. WordPress si nevedel poradiť s písmenom ‘ň’ a namiesto neho ukladal do databázy znaky ‘??’. Podobný problém s niektorými ďalšími znakmi.
Keďže v tejto situácii nebolo možné do blogu písať ďalšie príspevky, začal som hľadať riešenie. Po chvíľke hľadania po Internete som našiel príspevok na technickom fóre pre pipni.cz, kde používateľ um riešil podobný problém. Ukázalo sa, že daný problém nie je ani tak na strane WordPressu ako na strane MySQL. Riešenie je jednoduché. Do súboru wp-includes/wp-db.php bolo treba za riadok
$this->select($dbname);
doplniť nasledujúce tri riadky:
mysql_query("SET character_set_results=UTF8");
mysql_query("SET character_set_connection=UTF8");
mysql_query("SET character_set_client=UTF8");
Po ugrade WordPressu na verziu 2.3 mi opäť rozbilo diakritiku. Horeuvedené riešenie zabralo, ale tentokrát som namiesto 3 riadkov pridal iba
mysql_query(“SET NAMES ‘UTF8′”);
Zdravim, Updatoval som na WP 2.3.2
Totalne mi zblbla diakritika a niektore znaky sa stali otaznikmi. Skusal som za riadok
$this->select($dbname);
vlozit
mysql_query(“SET NAMES ‘UTF8′”);
ale nepomohlo. Nemas iny tip? dakujem a PF a tak
Nemáš náhodou na databáze nastavené iné kódovanie ako UTF-8?
Mohlo by pomôcť, keby si použil tie 3 príkazy uvedené v príspevku som správnym kódovaním – prehľad MySQL kódovaní.
Bavil som sa s tým celkom dlho a nakoniec sa to podarilo
pridal som si to tvoje do wp-db.php
potom aj do wp-config.php, ktory je v rootovskom priecinku – upravil som ho takto
define(‘DB_CHARSET’, ‘UTF-8’);
define(‘DB_COLLATE’, ‘UTF-8’);
u mna to vyzeralo akokeby bol problem v pomlcke medzi UTF a 8
no po ulozeni, mi to rozhodilo vsetku diakritiku v postoch, ale po opetovnej uprave, to uz bezalo v poriadku.