Δημοσιεύτηκε: 21 Μάιος 2011, 13:47
από simosx
mariag έγραψε:Όπως είπα, αυτά τα αρχεία αναγνωρίζονται ανεξαρτήτου encoding ως utf-8. Νομίζω ότι δεν υπάρχει τρόπος να το διορθώσω αυτό, παρά να ξανακατεβάσω με τον σωστό τρόπο τις σελίδες που είναι λάθος... Σωστά;


Η λήψη που κάνεις λαμβάνει τα αρχεία σε κάποια κωδικοποίηση όπως iso-8859-7 ή utf-8. Από εκεί και μετά, μπορείς να μετατρέψεις τα αρχεία που δεν είναι utf-8 σε utf-8 ώστε να είναι όλα με κοινή κωδικοποίηση, για την επόμενη επεξεργασία.

Για το neo.gr οι οδηγίες που έδωσα επιλύουν το πρόβλημά που αντιμετωπίζεις της λήψης και διόρθωσης της κωδικοποίησης με εύκολο και καλό τρόπο.
Για λήψη των αρχείων,
Κώδικας: Επιλογή όλων
curl -o 'neogr-#1.txt' 'http://www.neo.gr/modules.php?name=News&file=print&sid=[1000-7919]'

όπου λαμβάνει όλες τις σελίδες της μορφής http://www.neo.gr/modules.php?name=News ... t&sid=1000 μέχρι http://www.neo.gr/modules.php?name=News ... t&sid=7919 (δηλαδή από 1000 μέχρι 7919, δηλαδή 7919 μείον 1000 = 6919 σελίδες, που είναι και ο ακριβής αριθμός άρθρων που έχει ο δικτυακός τόπος).
Κώδικας: Επιλογή όλων

recode iso-8859-7..utf-8 neogr-????.txt


Μια εντολή που μετατρέπει όλα τα αρχεία με όνομα neogr-xxxx.txt, όπως xxxx = 1000, 1001, 1002, κτλ
από την αρχική κωδικοποίηση iso-8859-7 σε utf-8.

Θα πρότεινα να διαβάσεις ξανά το παραπάνω μήνυμα αρκετές φορές και να δοκιμάσεις αυτά που αναφέρω. Μπορείς να κάνεις ερωτήσεις για κάθε σημείο.

Αν θέλεις να επεξεργαστείς και να διορθώσεις μόνο τις σελίδες που έχεις λάβει ήδη, τότε μπορείς να δείξεις σε τι μορφή είναι οι σελίδες (π.χ. τι όνομα έχουν τα αρχεία, τι δείγμα κειμένου περιλαμβάνουν, κτλ). Για παράδειγμα, αν έχεις ήδη τις σελίδες του neogr και το όνομα των αρχείων είναι π.χ. neogr-files-xxxx.txt, τότε η εντολή για να διορθωθεί η κωδικοποίηση είναι (λάβε αντίγραφο ασφαλείας των αρχείων)
Κώδικας: Επιλογή όλων
recode iso-8859-7..utf-8 neogr-files*.txt

που είναι το δεύτερο βήμα των εντολών που δίνω.