Textconvert SCO-UNIX ? nach UTF-8
Hallo Liste Ich möchte Ascii-Textdateien aus einem alten SCO-UNIX System nach Linux UTF-8 übertragen. Leider weiss ich nicht genau, mit welchen Charactersets die Dateien unter SCO erstellt wurden. Es geht also um die Umlaute. Ein Check mit file .. ergibt Folgendes: Non-ISO extended-ASCII text, with overstriking Leider sagt mir das nicht gerade viel. Aus einem SCO-Handbuch konnte ich entnehmen, dass der verwendete ANSI-Emulator die PC-Codepages 437 verwendet habe. Es handelte sich um ein Schweizer- (CH-D) Keyboard. Ich finde in den Dateien zB: Zeichen Oktal Hex ü \201 81 è \212 8A ö \224 94 ä \204 84 Ich sollte alle diese Zeichen in das Pendant UTF-8 umsetzen. Kann mir hier jemand helfen wie ich vorgehen soll (iconv, uniconv, recode)? Welcher ist der Ursprungszeichensatz. Ist leider nicht gerade mein Spezialgebiet. Herzlichen Dank für jeden Tipp. Grüsse Bernhard
Am Montag 14 November 2005 17:31 schrieb Bernhard Bühler:
Leider sagt mir das nicht gerade viel. Aus einem SCO-Handbuch konnte ich entnehmen, dass der verwendete ANSI-Emulator die PC-Codepages 437 verwendet habe. Es handelte sich um ein Schweizer- (CH-D) Keyboard.
Ich finde in den Dateien zB:
Zeichen Oktal Hex ü \201 81 è \212 8A ö \224 94 ä \204 84
Die Codierung der genannten Zeichen entspricht tatsächlich der Codepage 437, sollte der Rest vermutlich auch passen.
Ich sollte alle diese Zeichen in das Pendant UTF-8 umsetzen. Kann mir hier jemand helfen wie ich vorgehen soll (iconv, uniconv, recode)?
Ein iconv -f CP437 -t utf-8 dokument.txt >> dokument_neu.txt sollte es tun (alternativ zu CP437 vielleicht IBM437 versuchen, wenn ersteres nicht funktioniert). -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Hallo, Am Mon, 14 Nov 2005, Manfred Tremmel schrieb:
Am Montag 14 November 2005 17:31 schrieb Bernhard Bühler: [..] Die Codierung der genannten Zeichen entspricht tatsächlich der Codepage 437, sollte der Rest vermutlich auch passen.
Jup.
Ich sollte alle diese Zeichen in das Pendant UTF-8 umsetzen. Kann mir hier jemand helfen wie ich vorgehen soll (iconv, uniconv, recode)?
Ein
iconv -f CP437 -t utf-8 dokument.txt >> dokument_neu.txt
recode cp437..utf-8 dokument.txt ### aendert die Datei! Nur nach Test! recode cp437..utf-8 < dokument.txt > dokument_utf8.txt ### aendert die Original nicht. Praktischerweise kann man bei recode auch die Zeilenumbrueche auch gleich explizit (und unabhaengig vom Zeichensatz) umkodieren, z.B.: recode cp437/CR-LF..utf-8/LF < dokument.txt > dokument_utf8.txt (das ist in diesem Fall der default) aber z.B. utf-8 mit CR-LF Umbruechen geht eben auch ;) echo 'üèöä' | recode latin9..cp437 | recode cp437..utf-8/CR-LF | hex 00000000 C3 BC C3 A8 C3 B6 C3 A4 0D 0A .......... ^^^^^ HTH, -dnh -- The social dynamics of the net are a direct consequence of the fact that nobody has yet developed a Remote Strangulation Protocol. -- Larry Wall
Hallo und danke an alle Helfer Am Dienstag, 15. November 2005 03.19 schrieb David Haller:
Hallo,
Am Mon, 14 Nov 2005, Manfred Tremmel schrieb:
Am Montag 14 November 2005 17:31 schrieb Bernhard Bühler:
[..]
Die Codierung der genannten Zeichen entspricht tatsächlich der Codepage 437, sollte der Rest vermutlich auch passen.
Jup.
Ich sollte alle diese Zeichen in das Pendant UTF-8 umsetzen. Kann mir hier jemand helfen wie ich vorgehen soll (iconv, uniconv, recode)?
Ein
iconv -f CP437 -t utf-8 dokument.txt >> dokument_neu.txt iconv hat einwandfrei gefunkt.
recode cp437..utf-8 dokument.txt ### aendert die Datei! Nur nach Test! recode wollte nicht: failed: Mehrdeutige Ausgabe in step `CR-LF..data
recode cp437..utf-8 < dokument.txt > dokument_utf8.txt ### aendert die Original nicht.
Praktischerweise kann man bei recode auch die Zeilenumbrueche auch gleich explizit (und unabhaengig vom Zeichensatz) umkodieren, z.B.:
recode cp437/CR-LF..utf-8/LF < dokument.txt > dokument_utf8.txt
wollte auch nicht: recode: Request `cp437/CR-LF..utf-8/LF' is erroneous
Danke und Grüsse Bernhard
participants (3)
-
Bernhard Bühler
-
David Haller
-
Manfred Tremmel