すんません。jcode_mini.phpsを使ってなんとなく出来ちゃいました。

<?
require("jcode_mini.phps");
$string="aあcdでe使f";
$Max_strlen=strlen($string);

for($i=0;$i<$Max_strlen;$i++){
$std=substr($string,$i,1);
$d=AutoDetect($std);
if($d==0){echo $std;}
else {$std=substr($string,$i,2);echo $std;$i++;}
}
?>

1バイトずつ取って逝って、アスキー文字だったらそのまま、
それ以外だったら2バイト?ってことで。