Viena iš varginančių problemų kuriant lietuvišką svetainę su UTF koduote - lietuviškų raidžių pradingimas, nors duomenų bazėje viskas atrodo gerai (UTF-8 koduote). Tai gali būti dėl kelių priežasčių:
nenustatyta puslapio koduotė
failas išsaugotas ne UTF koduote
standartinė serverio koduotė yra ne UTF
Pastarajam variantui ilgus metus tekdavo naudoti papildomą mysql užklausą SET NAMES iškart po prisijungimo prie bazės:
$conn = mysql_connect($host, $user, $pass) or die (”Service temporarily unavailable”);
mysql_select_db($db, $conn) or die;
mysql_query(”SET NAMES ‘utf8′”);
Talpinant svetainę pigiame hostinge, kur labai ribojamas mysql užklausų skaičius (pvz., mano svetainė yra smarkiai lankoma, o hostingas leidžia atlikti tik10.000 užklausų per valandą), tenka taupyti kiekvieną užklausą ir baisiai nesinori jų naudoti, jei nėra būtina. Nuo PHP5 atsiradimo SET NAMES užklausos galima išvengti naudojant PHP funkciją mysql_set_charset:
mysql_set_charset(’utf8′,$conn);
Ji padeda rodyti normalias lietuviškas raides UTF-8 koduotėje iš Mysql bazės su ta pačia koduote.
September 20th, 2008 at 22:19
[…] mysql_set_charset, parašius po prisijungimo prie bazės, padeda teisingai atvaizduoti lietuviškas raides iš bazės su utf8 koduote. (Plačiau čia) […]