NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s podporou uplatnění od 0 Kč. Více informací.
Avatar
Tomáš Střecha:10.2.2017 20:35

Ahoj,
mohl by mi prosím někdo říci, proč při výpisu dat z databáze, se mi místo písmen "ščřžýá" a podobně zobrazuje toto: "�", nebo normální otazník? Meta charset mám na UTF-8 a soubor mám také UTF-8 a to samé u tabulky.

Děkuji za veškeré odpovědi.

 
Odpovědět
10.2.2017 20:35
Avatar
maxy obr
Člen
Avatar
Odpovídá na Tomáš Střecha
maxy obr:10.2.2017 21:23

Asi ti moc nepomůžu ale ničím jiným než v kódování hlavička/soubor/da­tabáze by to být nemělo. Hledal bych chybu někde tady.
Maximálně mě ještě napadá zkusit to spustit jinde třeba localhost ale nejsem si jistý zda to má vliv.

 
Nahoru Odpovědět
10.2.2017 21:23
Avatar
Odpovídá na maxy obr
Tomáš Střecha:10.2.2017 21:25

A nemá na to PHP nějaký script?

 
Nahoru Odpovědět
10.2.2017 21:25
Avatar
maxy obr
Člen
Avatar
Odpovídá na Tomáš Střecha
maxy obr:10.2.2017 21:31

v php je možné přenastavit kódování ale pokud máš utf-8 tak to nemá význam
hmm ale zkus treba tohe http://php.net/…8-encode.php
vypsat udaje z databaze pomoci tehle funkce

 
Nahoru Odpovědět
10.2.2017 21:31
Avatar
Odpovídá na maxy obr
Tomáš Střecha:10.2.2017 21:38

No.. Dle mého bude problém přímo v databázi. Všechno mám nastaveno na utf8_czech_ci. Je to správně?
Popřípadě na co to mám nastavit a co všechno?

 
Nahoru Odpovědět
10.2.2017 21:38
Avatar
maxy obr
Člen
Avatar
Odpovídá na Tomáš Střecha
maxy obr:10.2.2017 21:48

Podle toho co píšeš bys měl mít nastaveno vše správně.
Pokud je chyba v db mohla by pomoct ta funkce co jsem posílal.

 
Nahoru Odpovědět
10.2.2017 21:48
Avatar
Odpovídá na maxy obr
Tomáš Střecha:10.2.2017 21:49

Horší je to, že ji neumím používat :D

 
Nahoru Odpovědět
10.2.2017 21:49
Avatar
Odpovídá na maxy obr
Tomáš Střecha:10.2.2017 22:08

Při pokusu o změnu kódování se mi vždy z utf8_bin přemění na utf8mb4_bin. Je to správně?

https://ctrlv.cz/…/10/dFSk.png

 
Nahoru Odpovědět
10.2.2017 22:08
Avatar
maxy obr
Člen
Avatar
Odpovídá na Tomáš Střecha
maxy obr:10.2.2017 22:18

pouzij to jednoduse

utf8_encode($text_z_databaze);
Editováno 10.2.2017 22:19
 
Nahoru Odpovědět
10.2.2017 22:18
Avatar
maxy obr
Člen
Avatar
Odpovídá na Tomáš Střecha
maxy obr:10.2.2017 22:21

a samozrejme to echuj

 
Nahoru Odpovědět
10.2.2017 22:21
Avatar
Odpovídá na maxy obr
Tomáš Střecha:10.2.2017 22:23

Bohužel toto také nefunguje.

 
Nahoru Odpovědět
10.2.2017 22:23
Avatar
maxy obr
Člen
Avatar
maxy obr:10.2.2017 22:28

tak ja nevim sel bych na to vylucovaci metodou pokud jsou ostatni znaky v pohode a spatne se zobrazuji pouze ty z db nebude chyba v hlavicce ani v souboru ale tedy jedine v db pak bych zkusil vypisovat z jine db, pokud tam to bude v pohode porovnej je a uvidis

 
Nahoru Odpovědět
10.2.2017 22:28
Avatar
Odpovídá na maxy obr
Tomáš Střecha:10.2.2017 22:37

Založil jsem úplně novou databázi, ale stále mi to nevypisuje diakritiku.

 
Nahoru Odpovědět
10.2.2017 22:37
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:11.2.2017 10:31

Co pouzivas za databazovy ovladac?

Nahoru Odpovědět
11.2.2017 10:31
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na Adam Ježek
Tomáš Střecha:11.2.2017 12:55

Ahoj, záleží na tom, co je databázový ovladač. :D Pokud si myslím správně, tak mysqli.

 
Nahoru Odpovědět
11.2.2017 12:55
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Tomáš Střecha
Adam Ježek:11.2.2017 14:24

Já sem používál PDO, ale co si tak pamatuju, tak sem musel po připojení k DB jako první poslat SQLko SET NAMES utf8, jinak mi ty znaky taky takhle blby.

Nahoru Odpovědět
11.2.2017 14:24
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na Adam Ježek
Tomáš Střecha:11.2.2017 15:29

Moc ti děkuji za radu, ale stále to nefunguje (pokud jsem to tedy použil správně mysql_query("SET NAMES 'utf-8'");)

 
Nahoru Odpovědět
11.2.2017 15:29
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Tomáš Střecha
Adam Ježek:11.2.2017 15:55

Jestliže máš

$db = new mysqli($host, $user, $password, $user);

zkus

$db->set_charset('UTF-8');

nebo

$db->set_charset('utf8');

Mělo by to fungovat.

A mám za to, že to nebylo

mysql_query("SET NAMES 'utf-8'");

ale

mysql_query("SET NAMES utf-8");
Editováno 11.2.2017 15:56
Nahoru Odpovědět
11.2.2017 15:55
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na Adam Ježek
Tomáš Střecha:11.2.2017 16:47

Mohl bys mi prosím ještě vysvětlit, co znamenají všechny ty šipky v PHP?

 
Nahoru Odpovědět
11.2.2017 16:47
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Tomáš Střecha
Ondřej Štorc:11.2.2017 20:14

Koukni se sem: http://www.itnetwork.cz/php/oop Tam nejdeš odpověď na tvoji otázku

Nahoru Odpovědět
11.2.2017 20:14
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Tomáš Střecha:12.2.2017 9:52

Právě jsem přišel na to, že pokud píči diakritiku přímo do tabulky, tak se mi na webu zobrazí špatně (v podobě otazníků), ale pokud použiji UPDATE a dám tam diakritiku, tak to již funguje. Neví někdo, co s tím dělat? :)

 
Nahoru Odpovědět
12.2.2017 9:52
Avatar
vlam
Člen
Avatar
vlam:12.2.2017 14:32

Zapisuješ data (přímo) v phpMyAdminu? Nebo jak?

Editováno 12.2.2017 14:34
Nahoru Odpovědět
12.2.2017 14:32
Do demence ještě stále daleko.
Avatar
 
Nahoru Odpovědět
12.2.2017 14:46
Avatar
vlam
Člen
Avatar
vlam:13.2.2017 8:36

Pozorne si zjisti jak mas nastavenou db v phpMyAdmin a totez si musis zajistit v aplikaci. Obecne je dobre vkladat data jen prez aplikaci nikoliv naprimo. Tedy chodi-li ti to dobre v aplikaci tak to je ok a neni zatim co resit.
(Pisu z mobilu, takze detailnejsi navid ti ted asi neposkytnu ;).

Nahoru Odpovědět
13.2.2017 8:36
Do demence ještě stále daleko.
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 24 zpráv z 24.