Αυτόματη αναγνώριση ελληνικών από τους Text Editors

South | Τρί, 06/07/2011 - 19:43 | 1' | 7

Καλησπέρα σε όλους!

Τι πρέπει να κάνουμε ώστε οι text editors του συστήματός μας (kwrite, kate, gedit...) να αναγνωρίζουν αυτόματα ελληνικούς χαρακτήρες; Δηλαδή να τους εμφανίζουν σωστά με το άνοιγμα του αρχείου κειμένου, χωρίς να χρειάζεται να καταφεύγουμε κάθε φορά σε αλλαγή κωδικοποίησης;

Ευχαριστώ!

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Το μόνο που μπορώ να σκεφτώ είναι να αλλάξεις με το εργαλείο iconv την κωδικοποίηση των αρχείων από ISO8859-7 (που φαντάζομαι ότι έχεις) σε UTF-8 που είναι default στο Linux.

Χρειάζεσαι κάτι τέτοιο:

cat arxeio.txt | iconv -f iso8859-7 -t utf-8 > arxeio-utf8.txt

Δεν γνώριζα γι αυτό το εργαλείο. Το κίνητρό μου για την ερώτηση αυτή ήταν το γεγονός ότι ενώ μέχρι τώρα όταν εγκαθιστώ Debian (stable ή sid) υπάρχει το πρόβλημα, τώρα που εγκατέστησα το aptosid οι ελληνικοί χαρακτήρες στα αρχεία κειμένου εμφανίζονται κανονικά.
Δεν θυμάμαι να έκανα κάτι διαφορετικό κατά την εγκατάσταση. Και τα locales τα άλλαζα μετά πάντοτε σε en_US.UTF-8 και el_GR.UTF-8 (δηλαδή άφηνα μόνον αυτά τα δύο στο σύστημα). Θα μπω στο Squeeze μου και θα δοκιμάσω με το iconv.

Ευχαριστώ!

Ή αφού τα ανοίξεις μια φορά και αλλάξεις το encoding, να τα κάνεις "save as" και να ορίσεις εκεί το νέο encoding (τουλάχιστον το kwrite έχει τέτοια επιλογή στο παράθυρο "save as").

Το πρόβλημα σου περιορίζεται σε αρχεία που είχες ήδη φτιάξει στο παρελθόν και είχαν σωθεί με παλαιότερα encodings. Για νέα αρχεία που δημιουργείς δεν πρέπει να έχεις τέτοιο πρόβλημα, έτσι;

Ακριβώς! Δεν υπάρχει πρόβλημα στα νέα αρχεία. Υπάρχει σε παλιά αρχεία ή σε αρχεία που έχουν δημιουργηθεί σε περιβάλλον Windows.

Λοιπόν, ωραία! Το iconv δουλεύει.

Φαίνεται πως το aptosid έχει κάποια ρύθμιση που του δίνει τη δυνατότητα να κάνει την μετατροπή από iso8859-7 σε UTF-8 αυτόματα. Μήπως γνωρίζει κανείς, αν είναι δυνατόν <<πειράζοντας>> κάποιο αρχείο συστήματος, να γίνεται η μετατροπή αυτόματα και σε διανομές που δεν το έχουν προβλέψει;

Όπως αλλάζουμε, για παράδειγμα, το .bashrc για να βλέπουμε πολύχρωμους τους διάφορους τύπους αρχείων στην κονσόλα. Δεν είναι ρυθμισμένο σε όλες τις διανομές...

Δεν είμαι σίγουρος για αυτό που θα πω, αλλά δε νομίζω ότι γίνεται κάτι τέτοιο, τουλάχιστον όχι σε επίπεδο διανομής. Δεν μπορώ να εξηγήσω γιατί το aptosid μπορεί και εντοπίζει κάτι τέτοιο, αλλά το μόνο που μπορώ να φανταστώ είναι νεότερες εκδόσεις των προγραμμάτων (πχ του kwrite).

Αλήθεια, το aptosid εντοπίζει αυτόματα το σωστό encoding ανεξαρτήτως editor; Νομίζω ότι το λειτουργικό δεν έχει καμία δουλειά να μπλεχτεί με το encoding του περιεχόμενου του αρχείου. Κανονικά είναι δουλειά του editor.

Νομίζω πως έχεις δίκιο. Έκανα και εγώ μία αναζήτηση σήμερα. Από τη στιγμή που τα locales είναι σωστά ρυθμισμένα στο σύστημα, από κει και πέρα είναι θέμα του editor. Το kwrite και το kate είναι νεότερες εκδόσεις στο aptosid απ' ότι στο Squeeze. Στο aptosid οι ρυθμίσεις για τους editors είναι περισσότερες.

Για παράδειγμα στον kwrite: Settings >> Configure Editor >> Open/Save >> General (tab)

Στο Squeeze είναι (μεταξύ άλλων)

Encoding: Unicode (UTF-8)
Encoding Autodetection: Disabled

ενώ στο aptosid

Encoding: Unicode (UTF-8)
Encoding Detection: Universal
Fallback Encoding: Western European (ISO 8859-15)

Βλέπουμε αμέσως τις διαφορές! Προφανώς η νεότερη έκδοση του kwrite έχει ενισχυμένη ικανότητα αναγνώρισης χαρακτήρων. Στο Squeeze το
Encoding Autodetection: Universal
δεν δίνει λύση (αλλάζει μόνο του και τα αναγνωρίζει ως ταϊλανδέζικα) αλλά αν θέσεις
Encoding: Greek (ISO 8859-7)
τα διαβάζει κανονικά.

Θα προτιμήσω τη νεότερη έκδοση...