NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Chybové hláčení s otazníky

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Kulíšek
Člen
Avatar
Kulíšek:20.6.2016 22:21

Zdravím, při nepovedeném spojení s databází vypisuji

catch (Exception $e)
       {
           die('Odchycená chyba' . $e->getMessage());
       }

Jenže v konečném výsledku mám místo diakritiky otazníky. Všechno ostatní funguje v databázi mám nastaveno UTF-8 czech, v indexu mám mb_internal_en­coding("UTF-8"); zdroják mám také v UTF-8, u PDO mám PDO::MYSQL_AT­TR_INIT_COMMAND => "SET NAMES utf8".
Výpis i ukládání do databáze probíhá v pořádku.
Jak se těch � potvor zbavit?

pardon za ten nadpis, hlavně že si dvacetkrát kontroluji obsah dotazu ale na nadpis si nevzpomenu :/

Editováno 20.6.2016 22:23
 
Odpovědět
20.6.2016 22:21
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Kulíšek
mkub:20.6.2016 22:33

a mas aj v HTML uvedene utf-8?

 
Nahoru Odpovědět
20.6.2016 22:33
Avatar
Kulíšek
Člen
Avatar
Odpovídá na mkub
Kulíšek:20.6.2016 22:36

ano i tam
no ale ted jsi mne nakopl, ta hláška se totiž vypisuje před výpisem html, problém zřejmě nalezen, ale vůbec nevím jak se ho zbavit

Editováno 20.6.2016 22:38
 
Nahoru Odpovědět
20.6.2016 22:36
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Kulíšek
mkub:20.6.2016 22:40

skus skontrolovat browser, ze ci tam je zvolene napevno ine kodovanie znakov, lebo aj tam to kodovanie moze zablbnut

 
Nahoru Odpovědět
20.6.2016 22:40
Avatar
Kulíšek
Člen
Avatar
Kulíšek:20.6.2016 22:57

tam je také utf-8
už nevím co dělat tak jsem zkusila do výpisu nacpat kostru HTML

die('<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <base href="/localhost"/>
    <meta charset="UTF-8"/> </head><body> Odchycená chyba' . $e->getMessage() . '
 příliš žluťoučký kůň úpěl ďábelské kódy. </body></html>');

špatně se vypisuje jen obsah $e->getMessage()

 
Nahoru Odpovědět
20.6.2016 22:57
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Kulíšek
David Hynek:21.6.2016 0:12

začínáš PHP s touto hlavičkou?

header('Content-type: text/html; charset=utf-8');

Mělo by to pomoci...

Nahoru Odpovědět
21.6.2016 0:12
Čím víc vím, tím víc věcí nevím.
Avatar
Kulíšek
Člen
Avatar
Kulíšek:21.6.2016 0:16

neměla jsem, ale bohužel ani přidání nepomohlo

 
Nahoru Odpovědět
21.6.2016 0:16
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Kulíšek
David Hynek:21.6.2016 10:32

a není to takhle přijato už z DB? V jakým ji máš kódování?

Nahoru Odpovědět
21.6.2016 10:32
Čím víc vím, tím víc věcí nevím.
Avatar
Kulíšek
Člen
Avatar
Kulíšek:21.6.2016 16:33

jak píšu vše mám v utf-8czech - databázi, sloupce i řádky

 
Nahoru Odpovědět
21.6.2016 16:33
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kulíšek
David Hartinger:21.6.2016 16:52

Hodilo by se napsat kde se bere obsah vlastnosti $message té výjimky. Pokud je špatně vypsaný jen ten, tak je problém tam, kde výjimku vyhazuješ. Nemůžeme vědět, jestli tam máš jen staticky napsaný text (pak je špatně kódovaný ten soubor) nebo zda tam dáváš třeba hlášku z DB (pak je problém v DB).

Nahoru Odpovědět
21.6.2016 16:52
New kid back on the block with a R.I.P
Avatar
Kulíšek
Člen
Avatar
Kulíšek:21.6.2016 17:07

Asi hláška z db je to jen obalený vnitřek funkce pripoj z tutoriálu "Jednoduchý redakční systém v PHP objektově (MVC)"
můžu to zkusit na čistém výsledku z toho tutoriálu

 
Nahoru Odpovědět
21.6.2016 17:07
Avatar
katrincsak
Člen
Avatar
Odpovídá na Kulíšek
katrincsak:29.6.2016 15:17

Nejčastější chyba bývá v nastavení kódování samotného používaného souboru.

 
Nahoru Odpovědět
29.6.2016 15:17
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 12 zpráv z 12.