MySQL - Diakritika
Zdravím,
mám PHP script, kterým do DB ukládám string. Jedná se o "český" string, kde jsou háčky a čárky. Do DB se mi místo háčků a čárek ukládají nějaké "nesmysly". Při selectu z DB na web, tak na webu vidím zase hezky pěkně "české" stringy s diakritikou. Kódování v PHP souboru mám UTF-8, DB mám utf8 + utf8_czech_ci, tabulku, a fild tabulky taky. Nevadilo by mi to, ale jde mi o to, že chci teď udělat vyhledávač, který bude vyhledávat ve všech stringách uložených v desítkách řádcích, tak mi to nebude fungovat.
Když bude uživatel hledat záznam, kde je slovo např. slovo "pařba". Tak se provede:
SELECT * FROM tabulka WHERE text LIKE '%pařba%';
Problém nastává tehdy, že v DB jsou "nesmysly" a není tam nikde slovo "pařba", protože "Ř" není uloženo. Ale pokud si to vypíšu pomocí PHP, tak na webu se mi z těch "nesmyslů" složí zase diakritika.
Nějaké návrhy na řešení ? Děkuji.
- Ono, znaky, carky hacky(specialni znaky) se moc nedoporucuji pouzivat,,,,
to platilo za krále klacka. Je i soubor php ve správném k´odování UTF8?
Na základe čoho si určil, že sa ti do databázy ukladajú nezmysly? Ten select ti nefunguje, keď ho spúšťaš v svojej PHP aplikácii?
Klient komunikuje s databázou v nejakom kódovaní, ktoré môžeš nastaviť napríklad pomocou funkcie mysqli::set_charset.
Zkusil jsem nastavit charset, ale pořád špatně. Podle čeho jsem to určil ? Podle tohoto.
Do input text na WEBu napíšu:
Když se to uloží do DB, tak vidím v Navicat:
A když selectnu z DB ten odstavec <p>, tak na webu vidím:
to je zase jiná, věc, ale je to prasárna, data se mají ukládat ve své "přirozené formě".
Môžeš byť trochu konkrétnejší? Používateľ vloží naformátovaný text v HTML formáte a do databázy sa to má vložiť v akej prirodzenej forme, aby to nebola prasárna?