Thanks for that. They've given us a list of 201 or so characters, £ sign, alpha, beta and so on.
I got as far as this for testing:
for ($i=0; $i<strlen($string); $i++) {
$output .= "&#" . ord($string[$i]) . ";";
}
But both that and yours give mangled output in the browser, like an input string of "£ xxx © ¤ Σ α ß" is displayed as "£ xxx © ¤ Σ α ß".
E.g. the pound sign has become & #194;& #163;
instead of the expected & #163;
(gaps deliberate)
Is there something about these particular characters that ord() doesn't like maybe.