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.
Tvůrce
Zobrazeno 16 zpráv z 16.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.