Diskuze: Problem s diakritikou

PHP PHP Problem s diakritikou American English version English version

Avatar
billy
Člen
Avatar
billy:

Ahoj,

mam mensi problem s diakritikou v php scriptech, ktere nacitaji data z MySQL DB.

Popisu to na jednoduchem prikladu:

mam web stranku index.php kde je pro html nastaveno :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="cs" />

tudiz pokud do html kodu te stranky napisu jakoukoliv ceskou diakritiku, je spravne zobrazena.

Pokud ale vypisu takto:

<?php echo $neco; ?>

kde obsahem promenne je text s diakritikou, tak ta uz neni spravne zobrazena, misto pismen s hacky a carkami se zobrazi nejake paznaky.

obsahem promenne $neco je text typu varchar, kodovani utf8_czech_ci z tabulky databaze MySQL. Kdyz se napojim primo na databazi a necham si zobrazit konkretni bunku v tabulce kde ten text je, je jeste vse vporadku.

dik za pomoc a objasneni kde mam chybu.

Editováno 6.11.2014 22:05
 
Odpovědět 6.11.2014 22:05
Avatar
billy
Člen
Avatar
Odpovídá na billy
billy:

ps: toto se take zobrazi spravne

<?php echo "ěščřžýáíéúů"; ?>
Editováno 6.11.2014 22:11
 
Nahoru Odpovědět 6.11.2014 22:11
Avatar
Odpovídá na billy
Martin Konečný (pavelco1998):

Zkus nastavit pomocí query příkazu

SET NAMES utf8

případně

SET CHARACTER SET utf8
 
Nahoru Odpovědět  +3 6.11.2014 22:27
Avatar
Odpovídá na billy
Denis Homolík (Alfonz):

Co používáš pro komunikaci s Db?

Nahoru Odpovědět 6.11.2014 22:28
Vše je možné, dokud si to myslíte!
Avatar
billy
Člen
Avatar
billy:

Tak jsem to ted vyzkousel a

mysql_query("SET NAMES 'utf8'");

jinak pro komunikaci s DB pouzivam na koupenem hostingu klasicky phpmyadmin.

Ale stejne by me zajimalo jestli by to slo vyresit i jinak nez pomoci toho query prikazu?

 
Nahoru Odpovědět 7.11.2014 18:49
Avatar
Richard
Člen
Avatar
Odpovídá na billy
Richard:

Dá se to nastavit globálně, teď to možná bude nepřesné, s mysql už moc nedělám, ale možnosti by měly být určitě 2:

  1. Nastavení v configu aby se používalo vždy utf
  2. Nastavení v configu aby ten příkaz byl volán automaticky po connectu

Jinak jeden sql dotaz navíc je celkem nic, zvlášť když se volá jen na začátku.

PS. Nedávno jsem se setkal s podobným problémem, nic nezafungovalo, konfigurace OK, spojení OK.. Nakonec byl problém v kódování souboru, ale že mi to dalo než mi to došlo. Třeba to někomu pomůže se stejným problémem.

Editováno 7.11.2014 19:57
Nahoru Odpovědět 7.11.2014 19:56
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Samuel Illo
Redaktor
Avatar
Odpovídá na billy
Samuel Illo :

Nepomôže dať na začiatok php súboru hneď za <?php toto?

mb_internal_encoding("utf-8");
Nahoru Odpovědět 7.11.2014 19:59
www.samuelillo.com; lamka02sk(zavináč)samuelillo.com, www.point.samuelillo.com, www.csgorig.eu
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Samuel Illo
Marek Z.:

To je pouze pro práci s řetězci, komunikace s databází potřebuje svoje vlastní určení kódování.

Nahoru Odpovědět  +1 7.11.2014 20:10
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.