- preg_replace: documentation ( source)
<?php
$result = "°Freenew°\x90ɮ";
//$result = trim($result,"\xc2"/*"\xa0"*/);
//echo preg_replace('#[\x00-\x1F\x7F-\x9F]#', '', $result);
//reject overly long 2 byte sequences, as well as characters above U+10000 and replace with ?
$result= preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'.
'|[\x00-\x7F][\x80-\xBF]+'.
'|([\xC0\xC1]|[\xF0-\xFF])[\x80-\xBF]*'.
'|[\xC2-\xDF]((?![\x80-\xBF])|[\x80-\xBF]{2,})'.
'|[\xE0-\xEF](([\x80-\xBF](?![\x80-\xBF]))|(?![\x80-\xBF]{2})|[\x80-\xBF]{3,})/S',
'', $result );
echo $result;