Smajlíci v databázi
Dobrý den,
rád bych se zeptat jak v databázi uchovávat smajlíky, na internetu jsem se dočetl že pomoci utf8mb4.
Tak jsem změnit databázi, tabulky a i dané sloupce na utf8mb4, ale stále se mi místo smajlíků ukazují otazníky.
Děkuji.


Je to nejjednodušší způsob. Nepotřebuji vymýšlet žádné další skripty pro nahrazení 🙂 => 😀.
4 Answers
Dobrý den,
ano, znaková sada utf8mb4 je vhodná k ukládání smajlíků. Po změně znakové sady databáze, tabulek i sloupců je potřeba do tabulky uložit text se smajlíky znovu. Pokud jste pouze změnil znakovou sadu a ponechal původní data, tak to fungovat nebude, protože znaky smajlíků byly znehodnoceny tím, že tam byla původně nastavená jiná znaková sada.
Také se ujistěte, že script, který do databáze data ukládá, pracuje se znakovou sadou utf8. Stránka, která data zobrazuje, rovněž musí pracovat se znakovou sadou utf8 (popřípadě jinou, která ovšem musí smajlíky podporovat).
Nakonec je potřeba poznamenat, že některé smajlíky nemusí umět správně vykreslit ani samotný operační systém, protože je nemusí obsahovat znaková sada, kterou OS používá.
Jaký máte důvod uchovávat znak smajlíka přímo v databázi?
Já osobně používám png obrázek a PHP str_replace s dvěma poli, jedno pro textový smajl ( :), 😀 ) a druhá přímo pro HTML tag img s cestou daného smajla, všichni vidí to samé.
Dle náročnosti na stránce používám funkci smajluj buď při ukládání a nebo naopak text nechávám původní a smajluju až při výpisu.