Try putting this in the <head>
of your PHP file:
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
For HTML5 (thanks to scootergrisen), you can also use:
<meta charset="utf-8">
Edit:
Well, to me, it seems that your API is not encoding properly. This will make any attempts to decode your string fail (and leave you with parsing '♥' yourself).
Your API encodes ♥ as \u00c3\u00a2\u00c2\u0099\u00c2\u00a5
, which according to this seems invalid.
Therefore, the only (hackish) solution that I see right now would be to re-parse your API's response yourself, for example like this.
Edit 2:
Whatever it is your API is doing, don't rely on it. You have all the data you need in your XML already (in an unescaped, UTF-8 format), so why not access it directly? :)
This might be the best thing to do without any hackish fixes:
$name = $steamdata->steamID;