&#NUMBER;
относится к значению Unicode этого символа.
, чтобы вы могли использовать такие регулярные выражения, как:
/&#(\d+);/g
чтобы схватить числа, я не знаю PHP, но я уверен, что вы можете узнать, как превратить число в его эквивалент в юникоде.
Затем просто замените ваш матч с регулярным выражением на символ.
Редактировать : На самом деле похоже, что вы можете использовать это:
mb_convert_encoding('æ', 'UTF-8', 'HTML-ENTITIES');