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"!
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"!