Textdateien nach Zeichenkodierung-Zeichensatz suchen
Kennt wer ein Suchprorgamm unter Win, das nach Zeichenkodierungen sortiert?
Guten Tag,
da sich in einem meiner größeren PHP-Projekte Ansi-kodierte Dateien unter meine UTF-8 Files gemischt haben, wollte ich alle ANSI-Textdateien suchen, finde aber kein passendes Tool dazu
Hat jemand einen Tipp / Empfehlung?
Guten Tag,
da sich in einem meiner größeren PHP-Projekte Ansi-kodierte Dateien unter meine UTF-8 Files gemischt haben, wollte ich alle ANSI-Textdateien suchen, finde aber kein passendes Tool dazu
Hat jemand einen Tipp / Empfehlung?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142606
Url: https://administrator.de/contentid/142606
Ausgedruckt am: 26.11.2024 um 13:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo zepho,
sind die Dateien denn entsprechend getaggt, oder wäre das nur aus dem Inhalt erkenntlich?
Da ANSI und UTF-8 im Bereich von 0-127 identisch mit ASCII sind, kann man es dann nur an gfs vorhandenen Umlauten oder sonstigen Bekannten Sonderzeichen erkennen.
Gruß
LotPings
sind die Dateien denn entsprechend getaggt, oder wäre das nur aus dem Inhalt erkenntlich?
Da ANSI und UTF-8 im Bereich von 0-127 identisch mit ASCII sind, kann man es dann nur an gfs vorhandenen Umlauten oder sonstigen Bekannten Sonderzeichen erkennen.
Gruß
LotPings
Naja, wenn deine Dateien eine BOM haben sind die Anderen doch leicht zu finden.
(Nur so aus dem Kopf)
<?php
function findNonBOMRecursive($startDir,&$outArray)
{
if($startDir[strlen($startDir)-1] != '/')
$startDir .= '/';
$files = glob($startDir.'*');
foreach ($files as $file) {
if(is_dir($file)) {
findNonBOMRecursive($file,$outArray);
continue;
}
if(!preg_match('/\.php$/iD', $file))
continue;
$fh = fopen($file,'r');
$top = fread($fh, 3);
fclose($fh);
if($top != "\xEF\xBB\xBF")
$outArray = $file;
}
}
$files = array();
findNonBOMRecursive('/my/project',$files);
print_r($files);
?>
Na gut, dann bleibt dir nur übrig in der Datei nach UTF8-Zeichen zu suchen:
Natürlich findest du so keine Dateien mit gemischtem Encoding.
<?php
function findNonUTF8Recursive($startDir,&$outArray)
{
if($startDir[strlen($startDir)-1] != '/')
$startDir .= '/';
$files = glob($startDir.'*');
foreach ($files as $file) {
if(is_dir($file)) {
findNonBOMRecursive($file,$outArray);
continue;
}
if(!preg_match('/\.php$/iD', $file))
continue;
$cont = file_get_contents($file);
if(strpos($cont, "\xC3\xBC") || //ü
strpos($cont, "\xC3\xA4") || //ä
strpos($cont, "\xC3\xB6") || //ö
strpos($cont, "\xC3\x9F") //ß
)
continue;
$outArray = $file;
}
}
$files = array();
findNonUTF8Recursive('/my/project',$files);
print_r($files);
?>