Не проще ли данные просто выводить компонентой web-браузера?
Если же хочется всё же решить задачу рекомендую посмотреть как устроена функция
html_entity_decode в phpjs. Ключевой момент — использование
специальной таблицы для многочисленных мнемоник. Те, которые заданы шестандцатиречным числом, можно и попросту сконвертировать выдрав регуляркой код символа и подставив на его место символ с соответствующим кодом.