hawkmaster: Welche Zeichencodierung unter Windows ?

Beitrag lesen

Hallo zusammen,

Folgendes ist mir nicht ganz klar.
Eine Datei wird unter Windows XP (Deutsch) mit dem Namen sÄÜ.txt einmal im UTF8 Format und einmal als ANSI gespeichert.

Wenn ich nun die länge der Datei mit PHP ermitteln möchte bekomme ich mit strlen den Wert 7 und mit mb_strlen($f, 'utf8') den Wert 6 unabhängig in welchem Format. Also immer gleich.

Ausgabe:
das file t ist s��.kdk mit länge 7 und 6

  
if(is_dir($useruploadtmp)){  
  $d = opendir($useruploadtmp);  
	while (false !== ($f = readdir($d))){  
	if(is_file($useruploadtmp . "/" . $f)){  
		$filename_ges = strlen($f);  
		$filename_ges_utf8 = mb_strlen($f, 'utf8');  
		echo "<br><br>das file t ist $f mit länge $filename_ges und $filename_ges_utf8<br>";  
	}  
}  
closedir($d);  
}  

Eigentlich rechnet strlen ja richtig obwohl ich annahm das die Zeichen ÄÜ doppelt gezählt werden.

Mache ich einen Denkfehler?
Welche Funktion ist die richtige?

vielen Dank und viele Grüße
hawk