Pracuji na redesignu svých osobních stránek, které budou v nové verzi také ukazovat zprávy z twitteru. Twitter nabízí RSS zdroj, takže se lze k němu jednoduše připojit a stáhnout si aktuální zprávy.
Problém je v kódování, ve kterém zprávy jsou. I když je v RSS zdroji napsáno utf8, přesto jsou české znaky převedeny na entity. Na webové stránce se sice znaky zobrazí správně, ale v databázi to nevypadá moc hezky a ještě hůř se s tim pracuje.
Hledal jsem, jak tedy html entity v php převést na normální české znaky a bohužel jsem nebyl moc úspěšnej. Nepomohla klasická funkce na překódování iconvEN, html_entity_decodeEN, ani url_decodeEN.
Neuchytil se ani spolužákův tip na alternativu k htmlspecialchars a tedy htmlspecialchars_decodeEN. A když už jsem našel na fóru JakNaWeb přímo řešený můj problém, stejně jsem nakonec neuspěl, protože funkce utf8_decodeEN také nepomohla.
Nakonec jsem náhodou narazil na článekEN, týkající se právě převodu entit. Všechny jsem vyzkoušel a přeci jen jsem nakonec uspěl. A to hned dvě funkce uspěly - html_entity_decodeEN a mb_convert_encodingEN. Obě musejí mít správné parametry, což byl také důvod, proč mi PHP funkce html_entity_decode nefungovala když jsem jí používal.
Použití tedy může vypadat například takto:
html_entity_decode($text, ENT_QUOTES, "utf-8")
Odkazy, které se můžou hodit