Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Textdateien nach Zeichenkodierung-Zeichensatz suchen

Frage Entwicklung

Mitglied: zepho

zepho (Level 1) - Jetzt verbinden

11.05.2010 um 11:59 Uhr, 3120 Aufrufe, 6 Kommentare

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?
Mitglied: LotPings
11.05.2010 um 12:41 Uhr
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
Bitte warten ..
Mitglied: zepho
11.05.2010 um 12:58 Uhr
Ich verwende weder Signierung noch BOM, wenn du das mit taggen meinst.
Da es sich um Klassen handelt, die gut kommentiert sind und auch in Deutsch, gehen ich davon aus, dass zumindest Umlaute vorhanden sind.
Andernseits habe ich gerade eine kleinere Datei ohne Umlaute geöffnet, die als UTF8 erkannt wird. Ich denke also nicht, dass es daran liegt.

Ich finde auch kein Suchtool bei google, bin ich auf ein schwarzes Loch gestoßen? Muss ich jetzt alles per Hand machen?
Bitte warten ..
Mitglied: dog
11.05.2010 um 13:14 Uhr
Naja, wenn deine Dateien eine BOM haben sind die Anderen doch leicht zu finden.

01.
<?php 
02.
 
03.
	function findNonBOMRecursive($startDir,&$outArray
04.
05.
		if($startDir[strlen($startDir)-1] != '/'
06.
			$startDir .= '/'
07.
			 
08.
		$files = glob($startDir.'*'); 
09.
		 
10.
		foreach ($files as $file) { 
11.
			 
12.
			if(is_dir($file)) { 
13.
				findNonBOMRecursive($file,$outArray); 
14.
				continue
15.
16.
			 
17.
			if(!preg_match('/\.php$/iD', $file)) 
18.
				continue
19.
			 
20.
			$fh = fopen($file,'r'); 
21.
			$top = fread($fh, 3); 
22.
			fclose($fh); 
23.
			 
24.
			if($top != "\xEF\xBB\xBF"
25.
				$outArray[] = $file
26.
27.
28.
	 
29.
	$files = array(); 
30.
	 
31.
	findNonBOMRecursive('/my/project',$files); 
32.
	 
33.
	print_r($files); 
34.
 
35.
?>
(Nur so aus dem Kopf)
Bitte warten ..
Mitglied: zepho
11.05.2010 um 13:17 Uhr
sorry da hast du dich verlesen....
"Ich verwende weder Signierung noch BOM..."
Bitte warten ..
Mitglied: dog
11.05.2010 um 13:26 Uhr
Na gut, dann bleibt dir nur übrig in der Datei nach UTF8-Zeichen zu suchen:

01.
<?php 
02.
 
03.
	function findNonUTF8Recursive($startDir,&$outArray
04.
05.
		if($startDir[strlen($startDir)-1] != '/'
06.
			$startDir .= '/'
07.
			 
08.
		$files = glob($startDir.'*'); 
09.
		 
10.
		foreach ($files as $file) { 
11.
			 
12.
			if(is_dir($file)) { 
13.
				findNonBOMRecursive($file,$outArray); 
14.
				continue
15.
16.
			 
17.
			if(!preg_match('/\.php$/iD', $file)) 
18.
				continue
19.
			 
20.
			$cont = file_get_contents($file); 
21.
			 
22.
			if(strpos($cont, "\xC3\xBC") || //ü 
23.
			   strpos($cont, "\xC3\xA4") || //ä 
24.
			   strpos($cont, "\xC3\xB6") || //ö 
25.
			   strpos($cont, "\xC3\x9F")    //ß  
26.
27.
				continue
28.
			 
29.
			$outArray[] = $file
30.
31.
32.
	 
33.
	$files = array(); 
34.
	 
35.
	findNonUTF8Recursive('/my/project',$files); 
36.
	 
37.
	print_r($files); 
38.
 
39.
?>
Natürlich findest du so keine Dateien mit gemischtem Encoding.
Bitte warten ..
Mitglied: zepho
11.05.2010 um 13:35 Uhr
hmm, okay. In meinem Fall müsste man glob noch auf php,htm/l und css,js beschränken.

Aber ich denke mir wird wohl nichts anderes übrig bleiben, als das ganz in php zu lösen. Da ich meine Update-Pakete auch mit PHP erstelle könnte ich ggf. eine Art Enkontrolle einbauen...mal sehen...

Danke für deine schnelle Vorlage, ich werd mein Projekt erstmal sichern und ein wenig basteln, da mein Akku aber bei 10% steht (schon 32 h wach) melde ich mich morgen nochmal hierzu.

Schönen Tag noch und Danke
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Textdateien TXT in allen Verzeichnissen suchen und zusammenfassen (19)

Frage von chgs2011 zum Thema Batch & Shell ...

Windows 7
Windows Explorer kommt aus dem Suchen nicht mehr raus (7)

Frage von peterpa zum Thema Windows 7 ...

Microsoft Office
gelöst Excel: Wert aus mehreren Datein suchen und zugehörige Werte ausgeben (11)

Frage von RubyLissy zum Thema Microsoft Office ...

Batch & Shell
gelöst Bat soll in einer .dll eine Zeile suchen und Diese + 2 darunterliegende anzeigen (10)

Frage von Gangster137910 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (17)

Frage von Ammann zum Thema Windows Server ...

Vmware
gelöst Wie würdet Ihr eine ESXi Cluster Farm managen? (11)

Frage von AlFalcone zum Thema Vmware ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...