Thread Byte raw format in String umwandeln (Glib::IO::File->get_contents) (18 answers)
Opened by Max_Perlbeginner at 2016-05-31 10:53

Max_Perlbeginner
 2016-05-31 10:53
#184851 #184851
User since
2016-04-04
107 Artikel
BenutzerIn
[default_avatar]
Liebe Perl-Spezialisten,

Ich versuche gerade die Funktion Glib::IO::File::get_contents() zum Laufen zu kriegen. Das Problem ist, dass nach dieser Quelle Glib::IO Dateien im "raw byte format" liest und speichert, d.h. ohne jegliche Kodierung (keine Ahnung, was das heißt ;-) ).

Um es konkret zu machen:
1)Ich habe eine einfache Textdatei mit dem Inhalt: "Hallo Welt"

2) Wenn ich deren Inhalt mit my ($success, $content, $etags) = Glib::IO::File::load_contents($file) lese [wobei $file eben eine zuvor erzeugte GFile ist] erhalte ich neben anderen Variablen eine Arrayreferenz auf den content in der Variablen $content.

3) Diese Arrayreferenz dereferenziere ich mit my @contents = @$content;

4) Doch, wenn ich diese dann ausgebe (print "@contents  \n";), erhalte ich Folgendes:
Quote
72 97 108 108 111 32 87 101 108 116


Ihr könnt Euch vorstellen, dass sich bei mir alles dreht ;-). Ich hab schon gesehen, dass scheinbar pack oder unpack der richtige Weg sein muss. Aber da werde ich einfach nicht schlau.
Die API Referenz gibt übrigens für content als element-type guint8 an, was folgendermaßen definiert wird (ist vlt. auch relevant):

Quote
An unsigned integer guaranteed to be 8 bits on all platforms. Values of this type can range from 0 to G_MAXUINT8 (= 255).


Letztlich ist es ein akademisches Problem, weil ich die Dateien ja auch mit perl Befehlen öffnen und schreiben kann, aber meine Neugier ist natürlich geweckt und vlt. kann mir jemand helfen diesen Content-Array in eine leserliche Perl Variable umzuwandeln.

Im Voraus Danke!

View full thread Byte raw format in String umwandeln (Glib::IO::File->get_contents)