Smajlíci v databázi

Vyřešeno3.52K zhlédnutíWebhosting
1

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.

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
MP220146 Vybral nejlepší odpověď 10. 7. 2019
4
1.24K Odpověď od WEDOS Internet, a.s. 0 Comments

Dobrý den,

znaková sada nastavená pro character_set_result by to neměla způsobovat. Ještě mě napadlo, že možná používáte starou verzi PMA na adrese https://pma-old.wedos.net/. V této verzi PMA Vám to fungovat nebude. Je potřeba použít PMA v novější verzi, která je dostupná na adrese: https://pma.wedos.net/4.4.15/

Testoval jsem to na standardní webhostingové DB se stejným nastavením znakových sad, jako uvádíte na obrázku výše a ukládání smajlíků funguje v pořádku.

Při spojení k DB v nějakém scriptu je potřeba před zápisem nebo výpisem na výstup nastavit znakovou sadu pro spojení s DB také na „utf8mb4“. V PHP to uděláte například pomocí tohoto příkazu: https://www.php.net/manual/en/mysqli.set-charset.php

Role: Podpora
MP220146 Vybral nejlepší odpověď 10. 7. 2019
3
1.24K Odpověď od WEDOS Internet, a.s. 0 Comments

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á.

Role: Podpora
FH140428 Odpověděl na otázku 9. 7. 2019
0

Po změně na utf8mb4 jsem znova zkusil vložit do databáze smajlíky pomocí SQL dotazu v PMA.

Možná to dělá character_set_result, protože je na utf8, ale já nevím jak ho změnit na utf8mb4.

Role: Zákazník
PŘ140434 Změnil status na publikováno 9. 7. 2019
0

Ano už to vše funguje. Děkuji za pomoc.

Role: Zákazník
MP220146 Změnil status na publikováno 10. 7. 2019