Перед тем, как отдать текст флешке, надо его преобразовать в utf8
Вот функция на перле (сам переделай в PHP)

Код:
#-- Перекодировка русских букв в utf (только так их поймет флешка)
sub utf
{ my $s = shift;
$s=~s/([А-Яа-яЪЬЁъьё])/win2utf($1)/eg;
return $s;
}
sub win2utf
{ my $s = shift;
my $c208 = chr(208);
my $c209 = chr(209);
if ( (ord($s)>=192) and (ord($s)<=239)) { return $c208.chr(ord($s)-48) }
if ( (ord($s)>=240) and (ord($s)<=255)) { return $c209.chr(ord($s)-112) }
if ($s=="Ё") { return $c208.chr(149) }
if ($s=="ё") { return $c208.chr(181) }
if ($s=="Ъ") { return $c208.chr(172) }
if ($s=="Ь") { return $c208.chr(170) }
if ($s=="ъ") { return $c208.chr(140) }
if ($s=="ь") { return $c208.chr(138) }
return $s;
}