Thread backslashes in dateien (open command)
(13 answers)
Opened by philbert at 2007-09-21 16:54
Das File Encoding spielt hier eigentlich keine Rolle, da du nur Zeichen aus den ASCII bereich nutzt. Und die haben bei utf8 und latin1 und allen anderen iso-8859-x Codierungen die selbe Byte darstellung.
Und auch so lässt sich anhand deines Beispieles das Problem nicht nachvollziehen. Bei mir wird alles richtig ausgegeben. Probleme könnte es nur geben wenn das Backslash in deiner Quelldatei wirklich ein Unicode Zeichen ist, und das zufällig genau ausschaut wie ein Backslash. Ich würde mal die Originaldatei mit einem Hexeditor öffnen, wenn das Backslash mehr als ein Byte groß ist, dann ist das der Fall. Ansonsten kannst du vielleicht eine Datei + Skript auf deinen Rechner irgendwie mal packen und zum DL zur Verfügung stellen? Ansonsten wenn es eine utf8 File ist, oder Generell Zeichen genutzt werden im Bereich von 128-255 musst du bestimmte dinge beachten. Code: (dl
)
use utf8 Das solltest du schreiben wenn das Skript selber UTF8 Codiert gespeichert wird, und auch Zeichen > 128 enthält. Code: (dl
)
open my $fh, '<:utf8', $file .... Sowas solltest du machen wenn die Datei utf8 Decodiert gespeichert wurde. Code: (dl
)
binmode STDOUT, ':utf8' Sowas solltest du machen wenn du utf8 Zeichen ausgeben möchtest. Bzw. wenn du ein UTF8 Terminal hast, musst du das auch bereits eintippen. Unabhängig davon in welcher Codierung deine Datei liegt. Wird sowas nicht explizit angegeben, geht Perl bei den einzelnen Punkten immer von einer iso-8859-1 Codierung aus. Optional kann ich immer empfehlen nen Terminal zu nutzen wo du einfach die Codierung hin und her schalten kannst, beim gnome-terminal kannst du einfach Codierungen hinzufügen, und stell das Terminal mal auf iso-8859-1 und führe dann das Skript aus. Und UTF8 und der Unicode krempel ist eigentlich total einfach. ;) Selbst schuld wenn ihr euch immer davor drückt. ^^ Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|