'Æ' I'm passing is indeed UTF-8.
Are you sure?
Oops. This was an oversight on my part; and in the interests of helping others with a
similar problem, here's the plain-and-simple solution:
Always remember to set the appropriate Content-Type header on your response. In this
header('Content-Type: text/html; charset=utf-8');
What an embarrassing oversight! Thank you all for your help.