Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   php-Dateien per Batch von DOS-Format => UTF8-Unix? (https://www.delphipraxis.net/161718-php-dateien-per-batch-von-dos-format-%3D-utf8-unix.html)

blackfin 17. Jul 2011 13:58


php-Dateien per Batch von DOS-Format => UTF8-Unix?
 
Hallo liebe Delphianer,

ich suche, wie die Überschrift schon sagt, ein Tool, das mir Text-Dateien (php-Quellcode) per Batch von Ascii-DOS in UTF8-Unix konvertieren kann.
Mein UltraEdit (v17) kann das leider nur immer einzeln für eine einzige Datei, per Makro funzt auch nicht, da der entsprechende Befehl nicht als Makro-Funktion zur Verfügung steht...
Das Projekt hat ~300 Quellcode-Dateien, die in Ordnern verschachtelt sind, da möchte ich nicht jede einzeln aufmachen, umwandeln und abspeichern...

Kennt hier jemand ein Tool dafür? Kann auch ein kleines Kommandozeilen-Tool sein.
Ich habe schon was über iconv ergooglet, allerdings werde ich da nicht ganz schlau draus mit dem ganzen Parameter-Wust, scheint ein wenig "Nerdcore" zu sein das gute Teil :-D

Sinn und zweck ist es, das ganze Projekt (ein altes php-Framework, das ich mal geschrieben habe) mal aufzuräumen, das ganze in ein MVC-Pattern umzusetzen und dabei gleich alles auf UTF8 umzustellen. Allerdings meckert NetBeans, wenn man das Projekt als UTF8 anlegt, die bestehenden Quelldateien aber Ascii-DOS sind, und konvertieren kann Netbeans beim Öffnen anscheinend nicht...doof.

Valle 17. Jul 2011 14:02

AW: Text-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
Hast du ein Linux zur Verfügung? Dann sind dos2unix und iconv deine Freunde! :)

Code:
valentin@orion:~$ dos2unix "datei.txt" && iconv -f ascii -t utf-8 "datei.txt"
Liebe Grüße,
Valentin

blackfin 17. Jul 2011 14:04

AW: php-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
Wooow! So schnell eine Antwort! Danke! :thumb::thumb:

Ja, ein Linux habe ich....dein CMD-Sample sieht auch schon vielversprechend aus.
Wie wäre dann der Syntax, wenn man das ganze nicht nur für eine Datei, sondern rekursiv für alle .php-Dateien ab einem bestimmten Verzeichnis machen will? (bin nicht sooo der Linux-Crack..)

rollstuhlfahrer 17. Jul 2011 17:23

AW: php-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
Sind die alle in möglichst wenigen Verzeichnissen?

Du könntest dann ein wenig Unix-Shell-Skripten:
Code:
find -iname *.php .|while read f ; do
   DER BEFEHL "$f"
   DER ZWEITE BEFEHL "$f"
done
Bernhard

blackfin 17. Jul 2011 17:33

AW: php-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
Murmel, murmel....würde das dann so gehen? (bevor ich mein Linux zerschiesse :-D):

Code:
find -iname *.php .|while read f ; do
   dos2unix "$f"
   iconv -f ascii -t utf-8 "$f"
done

rollstuhlfahrer 17. Jul 2011 17:36

AW: php-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
Zitat:

Zitat von blackfin (Beitrag 1112283)
Murmel, murmel....würde das dann so gehen? (bevor ich mein Linux zerschiesse :-D):

1. Sicherungskopie der Daten
2. Das Skript nur im richtigen Ordner ausführen
3. find arbeitet REKURSIV, sollte also alles erwischen

Bernhard

blackfin 17. Jul 2011 17:38

AW: php-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
1.) Mach ich eh immer :-)
2.) Ach, nicht im root-Verzeichnis? Nein, Scherz! :stupid:
3.) Ok, dann lass ich den Pinguin mal die Fische fangen!

Danke vielmals für die Hilfe!! :thumb::thumb:

blackfin 17. Jul 2011 22:55

AW: php-Dateien per Batch von Ascii-DOS => UTF8-Unix?
 
ok, ganz richtig war das noch nicht, denn die beiden Befehle wollten auch ein Output-Target haben...aber das ist ja schnell gelöst :-)
Ausserdem hat mir die Input-Codierung "ASCII" die Umlaute in den deutschen Header-Kommentaren zerschossen, "LATIN1" war das richtige :)
(mein Fehler in der Thread-Titel-Angabe...Titel angepasst)

Falls jemand etwas Ähnliches mal braucht, hier nun der zusammengewurschtelte, richtige Code für das Linux-Shellscript:

Code:
#!/bin/bash
find -iname '*.php' |while read f ; do
   dos2unix "$f" -o "$f"
   iconv -f LATIN1 -t UTF-8 "$f" -o "$f"
done
Danke nochmal für die Hilfe, den Denkanstoss und den Script-Fetzen!
Ich bin nun glücklich, dass ich nicht jede Datei einzeln aufmachen musste und hab wieder was von Linux gelernt :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz