IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
billy
Člen
Avatar
billy:6.11.2014 22:05

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:6.11.2014 22:11

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):6.11.2014 22:27

Zkus nastavit pomocí query příkazu

SET NAMES utf8

případně

SET CHARACTER SET utf8
Nahoru Odpovědět
6.11.2014 22:27
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
alfonz
Člen
Avatar
Odpovídá na billy
alfonz:6.11.2014 22:28

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

Nahoru Odpovědět
6.11.2014 22:28
lmao
Avatar
billy
Člen
Avatar
billy:7.11.2014 18:49

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:7.11.2014 19:56

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
Odpovídá na billy
Neaktivní uživatel:7.11.2014 19:59

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
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Uživatel sítě :7.11.2014 20:10

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
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.