tar + ελληνικά filenames -> windows + winrar

Giorgos Keramidas keramida at ceid.upatras.gr
Sun Dec 30 08:14:36 EET 2007


On 2007-12-30 07:44, Thanasis <thanasis at asyr.hopto.org> wrote:
>On 12/30/2007 03:12 AM Giorgos Keramidas wrote the following:
>> On 2007-12-30 02:15, Thanasis <thanasis at asyr.hopto.org> wrote:
>>> Εγώ πάντως δεν το δοκίμασα, αλλά μου φαίνεται απίθανο, ότι το πρόβλημα
>>> οφείλεται στο bzip2. O:-)
>>
>> Γιατί;  Επειδή πιστεύεις ότι, για κάποιο λόγο, το bzip2 είναι
>> «μαγικό πρόγραμμα»;
>
> Όχι, ακριβώς το αντίθετο.

Ok :)

> > Μιας και το ανέφερες όμως, κι εμένα θα μου φαινόταν απίθανο αυτό, αλλά
> > για συγκεκριμένο λόγο.  Το bzip2 δεν ασχολείται με τα «εσωτερικά
> > αποθηκευμένα» filenames των περιεχομένων ενός tarball.
>
> Σωστά.  Το ίδιο και το tar φαντάζομαι με το πώς θα βλέπω εγώ τα
> αποθηκευμένα filenames στο filesystem, έτσι;

Το tar, αντίθετα με το bzip2 (που κάνει απλά block-level compression),
διαβάζει τα filenames από τον τρόπο με τον οποίο είναι αποθηκευμένα στο
filesystem.  Χωρίς κάποια «έξτρα» πληροφορία, το tar δε μπορεί να ξέρει
αν τα παρακάτω bytes είναι σε κωδικοποίηση ISO 8859-7:

    b8 eb e5 ed e1 20 d0 e1  f0 e1 f1 df e6 ef f5 20
    2d 20 c1 f3 f4 dd f1 e9  e1 2e 6f 67 67

Μπορεί να προσπαθήσει να _μαντέψει_ κοιτάζοντας το $LANG ή το $LC_ALL ή
το $LC_CTYPE στο environment, και αν τύχει αυτά να είναι ρυθμισμένα στη
σωστή τιμή να καταλάβει ότι αντιστοιχούν στο string:

    "Έλενα Παπαρίζου - Αστέρια.ogg"

Αλλά αυτό μπορεί να είναι απλά ένα «extremely lucky guess», οπότε το tar
δεν προσπαθεί καν να κάνει κάτι τέτοιο.  Δυστυχώς, το tar file format
δεν έχει πρόβλεψη για per-file character set,[1] οπότε δεν είναι εύκολο
να φτιαχτεί κάτι που να μην «μαντεύει» και να μη χρειάζεται user input.

Πιθανόν να μπορεί να επεκταθεί το GNU tar ώστε να παίρνει παραμέτρους
όπως --filename-encoding='XXX' αλλά αυτό δε θα λύσει το πρόβλημα για
όσους δεν έχουν το GNU tar (π.χ. BSD, Solaris tar, ή Windows archivers).




More information about the Linux-greek-users mailing list