I am trying to take the rss/xml feed from itunes and I have noticed that artist and songs that have special charters like é like in beyoncé is showing as Beyoncé

I have tried the following to get it to show correctly but unsucessfully I have Googled searched and searched on here for the correct answer but sadly not working.

here is what I have tried - I maybe way off.

echo html_entity_decode($entry->imartist, ENT_COMPAT, 'UTF-8');

here is the full code

function itunes(){
$itunes_feed = "https://itunes.apple.com/au/rss/topsongs/limit=100/explicit=true/xml";
$itunes_feed = file_get_contents($itunes_feed);
$itunes_feed = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $itunes_feed);
$itunes_xml = new SimpleXMLElement($itunes_feed);
$itunes_entry = $itunes_xml->entry;

foreach($itunes_entry as $entry){
    echo html_entity_decode($entry->title."<br>", ENT_COMPAT, 'UTF-8');
    echo html_entity_decode($entry->imartist, ENT_COMPAT, 'UTF-8');
    echo "<br><br>";
    // Get the value of the entry ID, by using the 'im' namespace within the <id> attribute
    $entry_id['im'] = $entry->id->attributes('im', TRUE);
    echo (string)$entry_id['im']['artist'];
    //echo $entry_id['artist']."<br>";
}
}
有帮助吗?

解决方案

That feed is in valid UTF-8, you shouldn't need to decode it with html_entity_decode. What happens if you add a <meta charset="utf-8" /> in the <head> of HTML page ?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top