Используйте его для правильного результата
$dom = new DOMDocument();
$dom->loadHTML('<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . $profile);
echo $dom->saveHTML();
echo $profile;
Эта операция
mb_convert_encoding($profile, 'HTML-ENTITIES', 'UTF-8');
Это плохо, потому что специальные символы, такие как & amp; lt; , & delta; может быть в $ profile, и они не будут конвертировать два раза после mb_convert_encoding. Это отверстие для XSS и неправильный HTML.
Вы можете использовать событие _renderItem
для автозаполнения.
$.ui.autocomplete.prototype._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append('<a>'+item.label+'</a>')
.appendTo( ul );
};
вот скрипка для вас: https://jsfiddle.net/192m0uyc/9/