Diskuze: SQLite české znaky
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 16 zpráv z 16.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
SQLite umí korektně pracovat jen s Unicode. Pokud tedy přejdeš na UTF-8 (časem tě to stejně nemine), čeština se bude ukládat správně.
Promiň, teď jsem se podíval na výstup přímo ze sqlite a ten je v pořádku s diakritikou. Problém nastává, když s tím chci pracovat v php-tak tam už je to bez diakritiky:
$pdo = new PDO('sqlite:test.db');
$result = $pdo->query('SELECT * FROM test');
while ($row = $result->fetch(PDO::FETCH_OBJ)) {
echo $row->id . " " . $row->text . "<br />";
}
V tom případě ti asi chybí deklarace použité znakové sady v hlavičce HTML.
Nezapomeň také na ošetření výstupu HTML:
echo $row->id . " " . htmlspecialchars($row->text) . "<br />";
Takhle vypadá moje testovací stránka:
<!DOCTYPE html>
<html lang="cs-cz">
<head>
<title>Test SQLite</title>
<meta charset="utf-8" />
</head>
<body>
<?php
$pdo = new PDO('sqlite:test.db');
$result = $pdo->query('SELECT * FROM test');
while ($row = $result->fetch(PDO::FETCH_OBJ)) {
echo $row->id . " " . $row->text . "<br />";
}
?>
<p>Příliš žluťoučký kůň úpěl ďábelské ódy</p>
</body>
</html>
v databázi mám uložený ten samý text jako je v tom odstavci, ale z databáze mi vyleze tohle: P��li� �lu�ou�k� k�� �p�l Ԡbelsk� �dy
Skus si nastavit v php Kodování na utf-8 (nevím jak na to ,ale už sem to někde viděl)
Opravdu seš si jist, že jsi toho koně uložil do databáze v kódování UTF-8?
Myslím, že ano, když si v konzoli zobrazím výstup, tak tam je to v pořádku. Problém je jen v php.
Tak tohle netuším, asi ano. Jak se dá tedy do SQLite ukládat v UTF8?
srovnej všechno do UTF-8. Zdrojový kód, databázi, výstup.
Pokud budeš to té databáze ukládat data jen přes webový formulář v UTF-8, tak se vše automaticky překóduje. Proto si každý dělá u svého webu administraci - zjednodušuje to tyhle starosti a je pak jedno, ze kterého počítače data modifikuješ.
Jeden tip. Pokud používáš PSPad, tak si nastav formát na UTF-8. Já sem tam měl Windows a dělalo mi to to co tobě.
Ano, teď jsem vyzkoušel vložit další řádek pomocí php a ten se zobrazuje v pořádku - problém byl tedy s příkazovým řádkem windows. Díky za rady
Jak Notepad++, tak i Aptana Studio mám nastavené na UTF-8. Jediné na co
jsem nepomyslel je kódování toho příkazového řádku
.
Zobrazeno 16 zpráv z 16.