Εάν η πρόσθετη λειτουργία διαβάζει αρχεία κειμένου, πρέπει να τηρεί την προτίμηση κωδικοποίηση αρχείου κειμένου στον πάγκο εργασίας.
Τα αρχεία κειμένου έχουν διαφορετική κωδικοποίηση ανάλογα με την πλατφόρμα και την τοπική ρύθμιση.Τις περισσότερες φορές, αρκεί η χρήση της προεπιλεγμένης κωδικοποίησης του αρχείου κειμένου για την τοπική ρύθμιση του λειτουργικού συστήματος του υπολογιστή. Ωστόσο, ένας χρήστης μπορεί να θέλει να δουλέψει με αρχεία κειμένου που προέρχονται από άλλη προέλευση. Δεδομένης της ικανότητας χρήσης της πλατφόρμας σε δικτυωμένο περιβάλλον συνεργαασίας, είναι σίγουρα πιθανό να θέλουν οι χρήστες να δουλέψουν με αρχεία κειμένου που χρησιμοποιούν διαφορετικό σχήμα κωδικοποίησης από το ενσωματωμένο σχήμα κωδικοποίησης, ώστε να μπορούν εύκολα να ανταλλάσσουν αρχεία με μια άλλη ομάδα.
Για το λόγο αυτό, ο πάγκος εργασίας έχει το δικό του προφίλ κωδικοποίησης που καθορίζεται από το χρήστη στο πλαίσιο διαλόγου Προτιμήσεις.
Οι χρήστες μπορούν να επιλέξουν από τις διαθέσιμες επιλογές κωδικοποίησης
στη σελίδα προτιμήσεων
Γενικά >
Χώρος εργασίας ή να πληκτρολογήσουν τη δική τους κωδικοποίηση. Οι πρόσθετες λειτουργίες που ερμηνεύουν αρχεία κειμένου, όπως λειτουργίες επεξεργασίας και εργαλεία δόμησης, πρέπει να συμβουλευθούν την προτίμηση κωδικοποίησης του πάγκου εργασίας αντί να υποθέσουν ότι η εγκατεστημένη κωδικοποίηση του λειτουργικού συστήματος βρίσκεται σε χρήση.
Μπορείτε να επιλέξετε την προτίμηση κωδικοποίησης χρησιμοποιώντας ResourcesPlugin.getEncoding(). Αυτή η κωδικοποίηση θα πρέπει να μεταβιβαστεί στις λειτουργίες ανάγνωσης java.io αντί της χρήσης της προεπιλεγμένης κωδικοποίησης συστήματος. Εάν πρέπει να παρακολουθήσετε τις αλλαγές σε αυτή την προτίμηση, μπορείτε να δεσμεύσετε μια λειτουργία ακρόασης στις προτιμήσεις ResourcesPluginκαι να αντιδρά σε αλλαγές στη ResourcesPlugin.PREF_ENCODING. Το παρακάτω παράδειγμα προέρχεται από την προεπιλεγμένη λειτουργία επεξεργασίας κειμένου:
public void initialize(StatusTextEditor textEditor) { fTextEditor= textEditor; fPropertyChangeListener= new Preferences.IPropertyChangeListener() { public void propertyChange(Preferences.PropertyChangeEvent e) { if (ResourcesPlugin.PREF_ENCODING.equals(e.getProperty())) setEncoding(null, false); } }; Preferences p= ResourcesPlugin.getPlugin().getPluginPreferences(); p.addPropertyChangeListener(fPropertyChangeListener); fEncodingActionGroup= new EncodingActionGroup(fTextEditor); fEncodingActionGroup.update(); }
Οι χρήστες μπορούν επίσης να αλλάξουν την κωδικοποίηση για ένα συγκεκριμένο αρχείο στο μενού Τροποποίηση > Κωδικοποίηση της λειτουργίας επεξεργασίας. Εάν χειρίζεστε κείμενο μέσα σε ανοικτή λειτουργία επεξεργασίας, πρέπει αντίθετα να χρησιμοποιήσετε IEncodingSupport.getEncoding(), προκειμένου να λάβετε την κωδικοποίηση για τη συγκεκριμένη λειτουργία επεξεργασίας. Το παρακάτω παράδειγμα εμφανίζει τον τρόπο λήψης πληροφοριών από μια λειτουργία επεξεργασίας:
IEncodingSupport encodingSupport = (IEncodingSupport) editor.getAdapter(IEncodingSupport.class); String encoding = encodingSupport.getEncoding();