Visa ett inlägg
Oläst 2010-09-10, 16:22 #9
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Hade samma strul förut, problemet var att mb_detect_encoding() gissar fel.
Jag löste det genom att använda följande funktion:
Kod:
function is_utf8($str)
{
 $c=0; $b=0;
 $bits=0;
 $len=strlen($str);
 for($i=0; $i<$len; $i++)
 {
	$c=ord($str[$i]);
       if($c > 128)
	{
         if(($c >= 254)) return false;
         elseif($c >= 252) $bits=6;
         elseif($c >= 248) $bits=5;
         elseif($c >= 240) $bits=4;
         elseif($c >= 224) $bits=3;
         elseif($c >= 192) $bits=2;
         else return false;
	if(($i+$bits) > $len) return false;
         while($bits > 1)
	{
            $i++;
             $b=ord($str[$i]);
             if($b < 128 || $b > 191) return false;
             $bits--;
         }
      }
   }
   return true;
}
Exempel:
if (is_utf8($instr)) $outstr=utf8_decode($instr);
SimonP är inte uppkopplad   Svara med citatSvara med citat