Zeichensatz konvertieren (Mac -> Win)
Struppi
- perl
0 Daniel Thoma0 Struppi0 Daniel Thoma
0 Struppi
So,
es ist zwar nicht wirklich ein Perlproblem, aber da ich es für ein Perlprogramm brauche ....
Also ich hab eine Mac Datei und muss dort alle Sonderzeichen umwandeln. Ich hab das bis jetzt mit tr/.../ gemacht, indem ich mir die (Mac) Zeichen aus der Orginaldatei kopiert habe und aus dem Kontext erraten was es für es sein muss, das sah dann so aus:
$line =~ tr/ §«ÉÒÓ/ÄäÜüÖöß?' ""\n/; # Sonderzeichen korrigieren
was aber nur bedingt funktioniert und es fehlen auch noch ein paar. gibt es dafür ein Modul oder irgendwo sinnvolle Quellen?
ich finde nur Seiten die die Newline Problematik behandeln.
Struppi.
Hallo Struppi,
Zwischen verschiedenen Zeichensätzen konvertieren kannst Du mit folgendem Modul: http://www.perldoc.com/perl5.8.0/lib/Encode.html
Das ist ein standard Perlmodul. Du solltest es also nicht mehr extra installieren müssen.
Grüße
Daniel
Zwischen verschiedenen Zeichensätzen konvertieren kannst Du mit folgendem Modul: http://www.perldoc.com/perl5.8.0/lib/Encode.html
Das ist ein standard Perlmodul. Du solltest es also nicht mehr extra installieren müssen.
Leider, nicht.
Es ist zwar bei mir (ActivePerl) nicht installiert, aber bei meinem Hoster. doch egal wie ich's Versuche es kommt immer der gleiche Unsinn raus:
Zu Spt <- Orginal heißt eigentlich Zu Spät
Zu Spt <- print Encode::from_to($line, "utf8", "iso-8859-1");
Zu Sp?t <- print Encode::from_to($line, "ascii-ctrl", "iso-8859-1");
Zu Sp?t <- print Encode::from_to($line, "ascii", "iso-8859-1");
Ich hab's auch andersrum probiert, aber wenn ich's richtig verstanden habe ist iso-8859-1 das was ich brauche.
Das Problem geht noch weiter, jetzt habe ich eine DOS Datei die ich gern konvertieren würde auch die wird durch das Modul nicht richtig umgewandelt.
Oder mach ich was falsch?
Struppi.
Hallo Struppi,
Also ASCII kann dein Ausgangsformat schon mal nicht sein, wenn es Umlaute enthält. Um utf-8 scheint es sich auch nicht zu handeln.
--> Finde erst mal heraus, was überhaupt Dein Ausgangsformat ist.
(Du kannst die Textdatei z.b. im Browser öffnen und gucken, ob der das automatisch erkennt und ansonsten rumprobieren, wenn Du keine andere Möglichkeit hast, das in Erfahrung zu bringen.)
Grüße
Daniel
Hallo Struppi,
Also ASCII kann dein Ausgangsformat schon mal nicht sein, wenn es Umlaute enthält. Um utf-8 scheint es sich auch nicht zu handeln.
Die Datei sieht so aus: Zu Spt
Das heißt aber: Zu Spät
Die Quelle ist eine Kommaseparierte Datei aus Filemaker. D.h. auf dem Mac steht dann auch 'Zu Spät' da.
Was für ein Zeichensatz ist auf dem Mac üblich? Ich weiss es nicht. Ich finde auch nirgendwo eine vernüftige Doku darüber. Ich brauch ja eigentlich nur die Liste der sonderzeichen um diese dann umzuwandeln.
Struppi.
Hi,
hilft http://kodeks.uni-bamberg.de/Computer/Computer.htm dir weiter?
Danke, ja ein bisschen.
Ich hätte nicht gedacht, dass es so schwierig ist da an infos zu kommen. Das muss doch ein alltägliches Geschäft sein, die Zeichensätze umzuwandeln. aber so wie's auusieht muss ich mir das selber zusammenbasteln.
Struppi.
Hi,
Ich hätte nicht gedacht, dass es so schwierig ist da an infos zu kommen. Das muss doch ein alltägliches Geschäft sein, die Zeichensätze umzuwandeln. aber so wie's auusieht muss ich mir das selber zusammenbasteln.
Die wenigen Male, die ich das machen musste, hab ich das mit einem programm namens "recode" gemacht. Damit hat das bisher alles funktioniert.
Grüße Andres Freund
Ich hätte nicht gedacht, dass es so schwierig ist da an infos zu kommen. Das muss doch ein alltägliches Geschäft sein, die Zeichensätze umzuwandeln. aber so wie's auusieht muss ich mir das selber zusammenbasteln.
Die wenigen Male, die ich das machen musste, hab ich das mit einem programm namens "recode" gemacht. Damit hat das bisher alles funktioniert.
auch das habe ich gefunden. Allerdings (bis jetzt) nur als Linux Version, gibt's das auch als win Version?
Struppi.
Ich hätte nicht gedacht, dass es so schwierig ist da an infos zu kommen. Das muss doch ein alltägliches Geschäft sein, die Zeichensätze umzuwandeln. aber so wie's auusieht muss ich mir das selber zusammenbasteln.
Die wenigen Male, die ich das machen musste, hab ich das mit einem programm namens "recode" gemacht. Damit hat das bisher alles funktioniert.auch das habe ich gefunden. Allerdings (bis jetzt) nur als Linux Version, gibt's das auch als win Version?
Ehrlichgesagt keine Ahnung. Ich hab das nur auf Linux, und einmal auch auf BSD, genutzt, und auf die schnelle keine Infos über eine win Version gefunden. (auf ftp://ftp.gnu.org/pub/gnu/recode steht nichts davon).
Grüße Andres Freund
Moin,
auch das habe ich gefunden. Allerdings (bis jetzt) nur als Linux Version, gibt's das auch als win Version?
Ich hab gerade, als ich nochmal nachgeschaut habe, dies hier gefunden: http://www.weihenstephan.de/~syring/win32/UnxUtils.html
Vielleicht hilft dir das weiter. Wenn du ganz fleissig bist, kannst du ja ein perl Interface dazu bauen *g*.
Grüße Andres Freund
$line =~ tr/ §«ÉÒÓ/ÄäÜüÖöß?' ""\n/; # Sonderzeichen korrigieren
was aber nur bedingt funktioniert und es fehlen auch noch ein paar. gibt es dafür ein Modul oder irgendwo sinnvolle Quellen?
ich finde nur Seiten die die Newline Problematik behandeln.
Das einzige was gut ausssieht, dummerweise aber nicht funktioniert, ist bis jetzt das:
http://lists.suse.com/archive/suse-linux/1998-Apr/0312.html
ich seh mich schon rumfrickeln jedes Zeichen einzeln :-(
Struppi.