Dateien und Unterverzeichnisse nach UTF-8

17/01/2009 - 02:12 von Rudolf Harras | Report spam
Ich suche ein Programm mit dem man gesamte Verzeichnisse nach UTF-8
umwandeln kann.

Habe leider nur die Möglichkeit über Cywin gefunden, und da funktioniert
es nicht. Angeblich soll es mit
find . -name "*.php" -exec iconv -f ISO-8859-1 -t UTF-8 {} -o
../newdir_utf8/{} \;
gehen, aber kommt bei mir nur eine Fehlermeldung: no such file or
directory, bzw. wird die ausgabe nur angezeigt nicht aber abgespeichert.

Gibt es ein Windows-Programm das das kann? Wenn ich mit dem Editor die
Dateien öffne und beim Speichern UTF-8 einstelle dann paßt alles, nur
ist es etwas mühsam das mit jeder Datei zu machen.
 

Lesen sie die antworten

#1 Rüdiger Rösler
17/01/2009 - 14:45 | Warnen spam
Rudolf Harras typed:

Ich suche ein Programm mit dem man gesamte Verzeichnisse nach UTF-8
umwandeln kann.

Habe leider nur die Möglichkeit über Cywin gefunden, und da
funktioniert es nicht. Angeblich soll es mit
find . -name "*.php" -exec iconv -f ISO-8859-1 -t UTF-8 {} -o
../newdir_utf8/{} \;
gehen, aber kommt bei mir nur eine Fehlermeldung: no such file or
directory, bzw. wird die ausgabe nur angezeigt nicht aber
abgespeichert.

Gibt es ein Windows-Programm das das kann? Wenn ich mit dem Editor die
Dateien öffne und beim Speichern UTF-8 einstelle dann paßt alles, nur
ist es etwas mühsam das mit jeder Datei zu machen.



Sofern die PHP-Skripte in reinem Textformat vorliegen, könnte Dir dieses
Skript die Arbeit erleichtern:

'######################### Convert2Uni.vbs ############################
' von h.r.roesler
Option Explicit
' konvertiert ANSI-Textdateien ins Unicode-Format für PHP-Dateien
' Beim Aufruf müssen 2 Parameter angegeben werden:
' 1. Der Name der Ordner-Hierarchie, die konvertiert werden soll
' 2. Der Name des Ausgabe-Ordners
' Beispiel: Convert2UTF8 H:\ Q:\PHP

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const EXT = "php"
Dim fso, strStartFolder, strOutFolder

Set fso = CreateObject("Scripting.FileSystemObject")

If WScript.Arguments.Count > 1 Then
strStartFolder = WScript.Arguments(0)
strOutFolder = WScript.Arguments(1)
If Not(fso.FolderExists(strOutFolder)) Then
Wscript.Echo "Erzeuge neuen Ordner:" & vbCRLF & strOutFolder
fso.CreateFolder strOutFolder
End If
Search EXT, fso.GetFolder(strStartFolder), strOutFolder
End If

Sub Search(strExt, fsoFolder, strNewFolder)
Dim fsoFile, fsoSubFolder

On Error Resume Next
For Each fsoFile In fsoFolder.Files
If Not(IsEmpty(fsoFile)) Then
If LCase(fso.GetExtensionName(fsoFile.Name) = strExt) Then
WScript.Echo "Datei " & fsoFile.Path & _
" wird konvertiert."
Convert fsoFile, fso.BuildPath(strNewFolder, _
fso.GetFileName(fsoFile.ParentFolder))
End If
End If
Next

For Each fsoSubFolder In fsoFolder.SubFolders
Search strExt, fsoSubFolder, strNewFolder
Next
End Sub

Sub Convert(fsoFile, strOutFolder)
Dim fsoTxt, strOutFile, fsoOutFile

If Not(fso.FolderExists(strOutFolder)) Then
Wscript.Echo "Erzeuge neuen Ordner:" & vbCRLF & strOutFolder
fso.CreateFolder strOutFolder
If Not(fso.FolderExists(strOutFolder)) Then WScript.Quit
End If

strOutFile = fso.BuildPath(strOutFolder, fsoFile.Name)
Set fsoTxt = fsoFile.OpenAsTextStream(ForReading)
Set fsoOutFile = fso.CreateTextFile(strOutFile, True, vbTrue)

fsoOutFile.Write fsoTxt.ReadAll

fsoTxt.Close
fsoOutFile.Close
WScript.Echo "Datei " & fsoFile.Name & " wurde konvertiert."
End Sub

ЯR

Ähnliche fragen