Ελληνικά ονόματα αρχείων μέσα σε συμπιεσμένα (zip) αρχεία

Ξεκίνησε από gverv, 18 Μαΐου 2017, 02:16:55 ΜΜ

« προηγούμενο - επόμενο »

gverv

Υπάρχει τρόπος να διορθώσουμε στο Ubuntu MATE 16.04  στα zip αρχεία τα ελληνικά ονόματα αρχείων που φαίνονται ακαταλαβίστικα; Αν δεν κάνω λάθος στο 12.04 δεν είχαμε θέμα.

alkisg

Το πρόβλημα είναι ότι το p7zip-full είναι προεγκατεστημένο στο MATE. Αυτό προσφέρει τις εντολές 7z και 7za, τις οποίες ο Διαχειριστής συμπιεσμένων αρχείων engrampa τις προτιμά από την εντολή unzip. Τα sch-scripts διορθώνουν το unzip ώστε να δουλεύει με ελληνικά, αλλά δεν έχουν τρόπο να διορθώσουν το 7z/7za.

Ως workaround, μπορεί κάποιος να δώσει την εντολή:
sudo chmod -x /usr/bin/7z /usr/bin/7za

Μετά από αυτό η αποσυμπίεση θα χρησιμοποιεί το unzip και θα δουλεύει κανονικά.

Αν κάποια στιγμή ξαναχρειαστεί το 7z, το επαναφέρει δίνοντας:
sudo chmod +x /usr/bin/7z /usr/bin/7za

Και φυσικά η σωστή λύση είναι να χρησιμοποιείται UTF-8 κωδικοποίηση κατά την κατασκευή .zip αρχείων, και όχι η αρχαία κωδικοποίηση cp737 του DOS.

gverv

Ευχαριστούμε Πολύ!

Σημείωση: στην υποστηριζόμενη έκδοση των Ubuntu-MATE 16.04 32bit εμφανίζονται κανονικά. Στην έκδοση 64bit εμφανίζεται με κυριλλικά (δεν παίρνει αυτόματα το -O cp737)

alkisg

Και στην 64bit θα έπρεπε να δουλεύει, αρκεί να έχεις εγκαταστήσει sch-scripts. Αν τα έχεις, και δεν δουλεύει, να το κοιτάξω εδώ τοπικά.

gverv

64bit Ubuntu-MATE. Έχω sch-scripts. Με 7za(engrampa) εμφανίζονται τετραγωνάκια, με unzip(engrampa)  κυριλλικά, με unzip -O cp737 από τερματικό κανονικά. Δεν είναι γενικό και συμβαίνει κάτι περίεργο στο δικό μου σύστημα;

alkisg

Α, μήπως έχεις αγγλική γλώσσα; Τα sch-scripts καθοδηγούν το unzip να χρησιμοποιήσει -O cp737, μόνο αν ο χρήστης έχει ελληνική γλώσσα...

echo $LANG => el_GR.UTF-8
Αν είναι en_*, τότε δεν βάζουν -O cp737...

Ο σχετικός κώδικας είναι στο αρχείο /usr/share/sch-scripts/unzip.

Υ.Γ. σχετικό bug report: https://github.com/mate-desktop/engrampa/issues/5

gverv

Ναι αυτό είναι, Ευχαριστώ Πολύ. Στη δική μου περίπτωση πρόσθεσα στο /usr/share/sch-scripts/unzip κάτω από τη γραμμή
    el) charset=cp737 ;;
τη γραμμή
    en) charset=cp737 ;;
(μπακάλικη λύση) και το πρόβλημα λύθηκε.