Cybaer: Codierung einer XML Datei herausfinden und korrigieren

Beitrag lesen

Hi,

Wichtig für mich ist vor allem wie bekomme ich sie beim einlesen wieder in ein richtiges Format?

  
/* Ist String korrektes UTF-8? */  
function valid_utf8($string) {  
 $len=strlen($string);  
 $i=0;  
 while($i<$len) {  
  $char=ord($string{$i++});  
  if(valid_1byte($char)) { // continue  
   continue;  
  } elseif(valid_2byte($char)) { // check 1 byte  
   if(!valid_nextbyte(ord($string{$i++}))) return FALSE;  
  } elseif(valid_3byte($char)) { // check 2 bytes  
   if(!valid_nextbyte(ord($string{$i++}))) return FALSE;  
   if(!valid_nextbyte(ord($string{$i++}))) return FALSE;  
  } elseif(valid_4byte($char)) { // check 3 bytes  
   if(!valid_nextbyte(ord($string{$i++}))) return FALSE;  
   if(!valid_nextbyte(ord($string{$i++}))) return FALSE;  
   if(!valid_nextbyte(ord($string{$i++}))) return FALSE;  
  } else {  
   return FALSE; // 10xxxxxx occuring alone  
  } // goto next char  
 }  
 return TRUE; // done  
}  
  
function valid_1byte($char) {  
 if(!is_int($char)) return FALSE;  
 return ($char & 0x80)==0x00;  
}  
  
function valid_2byte($char) {  
 if(!is_int($char)) return FALSE;  
 return ($char & 0xE0)==0xC0;  
}  
function valid_3byte($char) {  
 if(!is_int($char)) return FALSE;  
 return ($char & 0xF0)==0xE0;  
}  
function valid_4byte($char) {  
 if(!is_int($char)) return FALSE;  
 return ($char & 0xF8)==0xF0;  
}  
function valid_nextbyte($char) {  
 if(!is_int($char)) return FALSE;  
 return ($char & 0xC0)==0x80;  
}  

Überprüfen und dann ggf. mit iconv() umwandeln.

Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!