Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
| Autor | Správa |
|---|
Registrovaný: 28.10.15 Prihlásený: 20.01.22 Príspevky: 29 Témy: 5 | 5 |
Zdravim, potreboval by som poradit, mam len jednoduchy kod a chcem aby na stranke sa zobrazoval nejaky text z databazy. To mi uz funguje, ale zle sa mi zobrazuje diakritika. Na ftp mam len tieto dva subory, db.php Kód: <?php $con=mysqli_connect("**","***","***","***"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: ".mysqli_connect_error();
} ?> a index.php Kód: <?php require_once 'db.php'; $query = "SELECT * FROM `quotes` ORDER BY rand() LIMIT 1";
mysqli_set_charset($con, "utf8");
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)) { print(json_encode($row['quotes'])); } ?>
v mysql som si nastavil tiez utf-8, ale stale sa mi nezobrazuje diakritika. Viete mi poradit co treba zmenit, ci je problem v mysql, alebo nieco zmenit v kode? Kód: http://prntscr.com/8wavao Dakujem
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
Nastav si UTF8 aj v html, chýba ti doctype a taktiež sa ubezpeč, že súbory máš takisto kódované v UTF8 a nie napr windows-1250.
_________________ C#, PHP, ... |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
A nezabudni DB povedať, že s ňou chceš komunikovať v UTF-8 (v mysqli je na to funkcia mysqli_set_charset).
|
|
Registrovaný: 28.10.15 Prihlásený: 20.01.22 Príspevky: 29 Témy: 5 | 5 |
Subory mam v UTF8. Html subor tam nemam, je tam iba index.php. Ak ten zmenim na html, a pridam tam doctype, head, body... tak potom sa mi nezobrazuje ziadny text. skusal som takto Kód: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body>
php kod z index.php
</body> </html> *chrono, to set charset tam mam, v index.php
|
|
Registrovaný: 21.09.13 Prihlásený: 04.04.26 Príspevky: 2111 Témy: 77 | 77 Bydlisko: Považská By... |
Kód: <!doctype html> <html> <head>...</head> <?php include('./index.php'); ?> ..... </html>
_________________ Nesnívaj svoj život, ale ži svoj sen. |
|
Registrovaný: 28.10.15 Prihlásený: 20.01.22 Príspevky: 29 Témy: 5 | 5 |
aj ked to dam takto, do index.html, tak sa nic nezobrazi... Ak otvorim .../index.php, tak to ide, ale zla diakritika Kód: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body>
<?php include('./index.php'); ?>
</body> </html>
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
Kraliček, prosím ťa...
1vlado3, keď si pozrieš dáta napr cez phpmyadmin, uložené sú správne?
_________________ C#, PHP, ... |
|
Registrovaný: 28.10.15 Prihlásený: 20.01.22 Príspevky: 29 Témy: 5 | 5 |
tak vyzera ze vsetko je OK, kedze aj text sa mi normalne zobrazuje, ak to nedam cez html, len ta diakritika... ako vidno aj na tomto screenshote, collation mam nastavene utf8_general_ci... Kód: http://prntscr.com/8wavao
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
Ak nemáš server nastavený tak, aby .html koncovku interpretoval ako php skript, tak samozrejme to nejde. Keď spúšťaš priamo index.php, ktorý html hlavičku neobsahuje, samozrejme to vypľuje blbú diakritiku. Tipujem že browser berie ako default windows-1250, a teda keď mu pošleš utf8 bez doctype či akýchkoľvek iných info, zobrazí to zle. Nerozumiem, prečo includuješ index.php do index.html.. Však použi len index.php.... Kód: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <?php require_once 'db.php'; $query = "SELECT * FROM `quotes` ORDER BY rand() LIMIT 1";
mysqli_set_charset($con, "utf8");
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)) { print(json_encode($row['quotes'])); } ?> </body> </html>
Btw, ten tvoj screenshot zobrazuje len kódovanie stĺpca. Chcel som vidieť ako vyzerajú dáta v tabuľke, priamo v nástroji na management databázy (phpmyadmin predpokladám). Lebo ono môžeš mať UTF-8 stĺpec, ale keď už do toho pcháš dáta v inom kódovaní, vieš čo to asi pomôže...
_________________ C#, PHP, ... |
|
Registrovaný: 28.10.15 Prihlásený: 20.01.22 Príspevky: 29 Témy: 5 | 5 |
Dal som to do toho php, ale stale sa to zobrazuje zle... V prehliadaci som si dal aj utf-8... ale inak, mozno som to mohol spomenut skor... nezobrazuje mi znaky otazniky, alebo ine znaky, ale napr. takto Citácia: Pripome\u0148te d\u00f4vod
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina | |
Registrovaný: 28.10.15 Prihlásený: 20.01.22 Príspevky: 29 Témy: 5 | 5 |
Tak konecne po dlhsej dobe sa mi to podarilo vyriesit, nakoniec bol problem s tym json, ale stacilo pridat toto JSON_UNESCAPED_UNICODE... Kód: <?php require_once 'db.php'; mysqli_set_charset($con, "utf8"); $query = "SELECT * FROM `quotes` ORDER BY rand() LIMIT 1"; $result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)) { json_encode($row, JSON_UNESCAPED_UNICODE); echo $row['quotes']; } ?> Dakujem velmi pekne vsetkym za ochotu a pomoc
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Ak to používaš ako JSON, tak nevadí, že sú tam escapeované aj Unicode znaky (pretože prehliadač vie, ako to interpretovať). Ak to nepoužívaš ako JSON, tak netuším, prečo si myslíš, že tam máš používať json_encode funkciu.
|
|
Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
|