majcho
Goto Top

Ghostscript pdfwrite zu txt wird in UCS-2 Little Endian konvertiert

Habe mit dem neuen Ghostscript 9.04 sehr gute resultate in der Umwandlung von Textbasierten .pdf-Dateien in .txt erzielen können. Wenn ich allerdings diese Textdateien mit Notepad++ öffne liegen

Habe mit dem neuen Ghostscript 9.04 sehr gute resultate in der Umwandlung von Textbasierten .pdf-Dateien in .txt erzielen können. Wenn ich allerdings diese Textdateien mit Notepad++ öffne, liegen diese in UCS-2 Little Endian vor. Jetzt würde ich gerne auf der Commandozeilenebene diese in UTF-8 oder ANSI umwandeln. Gibt es ein einfaches dos-script das dies erledigt?

Content-ID: 176298

Url: https://administrator.de/contentid/176298

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

60730
60730 15.11.2011 um 15:31:46 Uhr
Goto Top
ja
manni04
manni04 15.11.2011 um 22:14:02 Uhr
Goto Top
Ist zwar kein dos-skript aber vielleicht hilft dir das ja auch weiter:

Const Path = "file.txt"  

Const adTypeBinary = 1
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
 
Dim BinaryStream, Text
    
Set BinaryStream = CreateObject("ADODB.Stream")  
        
With BinaryStream
    .Type = adTypeText
    .Charset = "UTF-16"  
    .Open
    .LoadFromFile Path
     Text = .ReadText
    .Close
End With
        
With BinaryStream
    .Type = adTypeText
    .Charset = "x-Ansi"  
    .Open
    .WriteText Text
    .SaveToFile Path, adSaveCreateOverWrite
    .Close
End With

Das einfach als .vbs-Datei abspeichern.

Grüße manni
majcho
majcho 16.11.2011 um 10:40:05 Uhr
Goto Top
Hallo Manni04,

danke für deine Antwort. Leider hatte ich erfolglose und fehlerhafte Versuche mit Jodconverter und libiconv. Ich bin ein script-rookie so wie TimoBeil, der mit seiner Antwort einen Profi in mir vermutet. Dein Script habe ich auch erfolgreich umsetzen können, jedoch stieß ich an meine Grenzen mit einer Routine. Deshalb habe ich mir aus mehreren Beiträgen dieses Forums eine eigene Konstruktion zusammengebastelt, die sicher verbesserungswürdig ist.

:: derzeitige Codepage speichern
for /f "tokens=2 delims=:" %%i in ('chcp') do set /a oemcp=%%~ni  
:: auf ANSI wechseln
>nul chcp 1252

FOR /F "delims=" %%i in ('dir /a-d /b /s "*.txt"') do (  
type %%i > %%ia )
ren *.txta *.rtf
del *.txt
ren *.rtf *.txt

:: zurück nach ASCII
>nul chcp %oemcp%