Stránka 1 z 1

Přidána podpora pro vkládání emoji - utf8mb4

PříspěvekNapsal: 14 říj 2024 07:43
od SGvagon
Obrázek
Opravdu nás jednoho dne překvapilo, když jsme u jednoho ze článků psaném na mobilu zkusili přidat smajlíka / Emoji .

Vyskočila na nás SQL chybová stránka a nikdo nevěděl proč. Už jsme se obávali, že na stránky někdo útočí nebo se něco stalo se samotnou databází stránek!

Než jsme přišli na to, že to dělá právě přidané Emoji na mobilním telefonu, tak jsme byli hodně ve stresu a opravdu si trhali vlasy hlava nehlava.



Naštěstí jsme nebyli sami a zjistili přesnou příčinu problému, proč právě znaky Emoji vyhazují SQL chybu s databází. Toto fórum jsme zakládali již v roce 2015 a autoři phpBB jednoduše nepočítali, že se začnou používat na světě znaky, se kterými si databáze postaveny na znakové sadě UTF-8 prostě neporadí (už v době založení stránek jsme použili starší verzi 3.0.12 , která vyšla již koncem září roku 2013 ) .

Museli jsme tedy všechny tabulky v MySQL databázi obsahující text předělat na moderní znakovou sadu UTF8mb4 .

Samozřejmě to nešlo tak jak bychom očekávali a několikrát jsme museli celou databázi nahrávat ze zálohy, jelikož se při některých z pokusů rozházely české znaky s diakritikou nebo se rozbila funkce vyhledávání na webu.

Ano, i jednoduchá věc jako je vyhledávání se může při konverzi znakové sady podělat! Pro tabulku s indexací slov se nesmí použít utf8mb4_unicode_ci ale utf8mb4_bin , jinak se při indexování slov zapíše přibližně pouhá třetina z celkového množství.



Nicméně se nakonec vše zadařilo a nyní již můžete posílat zprávy i se znaky Emoji 🙂 😀 . Určitě by bylo lepší stránky aktualizovat na novější verzi phpBB , ale používáme zde takové množství doplňků a úprav přímo zdrojových souborů , že to jednoduše není možné, bohužel. Ale snažíme se všechny nedostatky doplňovat, aby byl web alespoň trochu moderní.