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