Тестовая строка:
$s = "convert this: "; $s .= "–, —, †, ‡, •, ≤, ≥, μ, ₪, ©, ® y ™, ⅓, ⅔, ⅛, ⅜, ⅝, ⅞, ™, Ω, ℮, ∑, ⌂, ♀, ♂ "; $s .= "but, not convert ordinary characters to entities";
$encoded = mb_convert_encoding($s, 'HTML-ENTITIES', 'UTF-8');
что ваша строка ввода – UTF-8, это должно кодировать большинство из всех в числовые сущности.
Хорошо htmlentities работает неправильно. К счастью, кто-то разместил код на веб-сайте php, который, похоже, правильно выполняет перевод многобайтовых символов
Я работал над расшифровкой ascii в html-закодированном тексте (& # xxxx). https://github.com/hellonearthis/ascii2web