Seite 1 von 1

Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 10.04.11, 22:06
von X-Byte
Ich bin auf der Suche nach einem Programm (GUI oder Kommandozeilentool), dem ich eine Liste von Textdateien vorwerfen kann, welche Text im Zeichensatz Big5 (Traditionelles Chinesisch) enthalten.
Als Ergebnis wünsche ich mir selbige Dateien, idealerweise am selben Ort der Originaldatei (die Originaldateien können auch überschrieben werden) in der Kodierung nach Unicode oder UTF8.
Wenn eine einzelne Textdatei und Konvertierungoptionen als Parameter übergeben werden können, würde mir das auch genügen, dann bastel ich mir eine Batchdatei.

Meine bisherige Suche hat zu ein paar wenigen Programmen geführt, deren Hersteller aber bares dafür sehen wollen. Es existieren sogar Online-Tools, die eine Konvertierung übernehmen, leider aber immer nur für eine einzelne Datei.

Textpad++ kann prinzipiell auch eine Big5->UTF8 Konvertierung, aber nicht per Makroaufzeichnung und auch nicht für mehrere Dateien.

Bevor ich mir jetzt was in Autohotkey zusammenfrickel, frag ich aber lieber hier noch Mal nach :-)

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 10.04.11, 22:58
von EchtAtze
Probier' mal diese EXE:
http://rapidshare.com/files/456818720/BIG5ToUTF8.zip
Ist eine in C# (.NET Framework 2.0) von mir auf die Schnelle Quick and Dirty ohne Fehlerbehandlung erstellte Kommandozeilen-Exe.
Sie benötigt genau zwei Eingabeparameter:
Eingabedatei und Ausgabedatei. Jeweils kompletter Pfad. Sind Blanks im Pfad/Namen enthalten, müssen Gänsefüschen drumherum (können natürlich auch generell angegeben werden).
Beispiel:
BIG5ToUTF8.exe "Input File.txt" "Output File.txt"

Gruß,
Atze

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 11.04.11, 11:30
von Jean

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 12.04.11, 0:22
von X-Byte
Vielen Dank Atze für Deinen Einsatz und auch an Jean, der sich hier als besseres Trüffelschwein erwiesen hat.
Alle Tools funktionieren, leider hab ich mir mit der batch-Datei dann aber selbst ein Bein gestellt, da die Pfadangaben zu den einzelnen Dateien chinesische Zeichen enthalten.
Wenn ich die Batch-Datei im UTF-8 Format speichere, erscheinen beim Aufruf nur Hyroglyphen an Stelle der chinesische Pfade. Bei Unicode(UTF-16) scheitert der Batchaufruf schon am BOM.
Ich denke ich werde schauen, ob ich den ahk-script so umschreiben kann, dass er einfach rekursiv durch alle Unterverzeichnisse iteriert und an Hand der Extension alle zutreffenden Dateien konvertiert. Oder vielleicht krame ich noch mal meine Perl-Kenntnisse aus dem Studium heraus und probiers damit.

Danke nochmals für eure Unterstützung, ich denke ab hier wird das ganze dann doch zu individuell um noch essentiell für andere zu sein ;)

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 12.04.11, 7:51
von EchtAtze
Du darfst die Batch Datei nicht im Unicode bzw. UFT-8 Format speichern, das kann der Interpreter wohl nicht.

Aber:
In der Batchdatei selber scheinst du ja die Dateien mittels eines DIR-Befehls zu ermitteln, richtig?
Probier doch mal den Parameter "/X" aus.
Der listet die Dateien in ihrer Kurzform auf.
Meines Wissens nach dann auch in einer Form, wie sie Batchdateien verarbeiten können!

Gruß,
Atze

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 12.04.11, 9:28
von JFierce7
Hmmm - einmal nach "batch convert big5 utf8" gegooglet liefert doch viele, auch kostenlose, Alternativen. Welche hast Du denn schon probiert?

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 12.04.11, 11:18
von Jean

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 12.04.11, 22:09
von X-Byte
@JFierce7
Das war natürlich auch mein erster Ansatz, allerdings waren fast alle Suchergebnisse entweder Spam oder eine sinnlose Sammlung von Websuchen. Die wenigen brauchbaren Ergebnisse funktionierte entweder überhaupt nicht oder war eben doch keine Batchverarbeitung.

@Jean
Danke, der Thread betrifft Problematiken beim Umbenennen von Big5 Dateien, die Dateinamen können in meinem Fall ruhig so bleiben wie sie sind.

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 13.04.11, 19:09
von EchtAtze
Anbei noch der C#-Quellcode von meinem Tool, damit ich es von der Platte löschen kann (falls es jemand brauchen kann):

Code: Alles auswählen

class Program
{
    static void Main(string[] args)
    {
        if (args.Length != 2)
        {
            Console.WriteLine("Need exact two filenames.");
            Console.ReadKey();
            return;
        }

        string inputFile = args[0];
        string outputFile = args[1];

        Console.WriteLine(inputFile);
        Console.WriteLine(outputFile);

        byte[] big5bytes = null;
        
        FileStream fs = new FileStream(inputFile, FileMode.Open);
        big5bytes = new byte[fs.Length];
        fs.Read(big5bytes, 0, (int)fs.Length);
        fs.Close();

        byte[] utf8Bytes = Encoding.Convert(Encoding.GetEncoding("BIG5"), Encoding.UTF8, big5bytes);

        fs = new FileStream(outputFile, FileMode.Create);
        fs.Write(utf8Bytes, 0, utf8Bytes.Length);
        fs.Close();
    }
}
Gruß,
Atze

Re: Batch Konverter für Big5 Textdateien nach UTF8 oder Unicode

Verfasst: 14.04.11, 13:12
von korinor
iconv?

Code: Alles auswählen

# Konvertierung von big-5 nach utf-8
$ iconv -f big-5 -t utf-8 inputfile > outputfile