Προς το περιεχόμενο

( ’ ) αντί για Ά στην κωδικοποίηση iso-8859-7


g1annis

Προτεινόμενες αναρτήσεις

Δημοσ.

Νομίζω ότι το πρόβλημα είναι κλασσικό και το αντιμετωπίζουν όλοι:

 

Κάθε φορά που κατεβάζω κάποια ταινία με υπότιτλους σε ξεχωριστό αρχείο (srt, sub κλπ) αντιμετωπίζω αυτό το πρόβλημα. Όπου υπάρχει τονούμενο κεφαλαίο άλφα (Ά) εμφανίζεται απλά κάτι σαν απόστροφος ( ' ) που ΔΕΝ είναι απόστροφος. Είναι ο χαρακτήρας U+2019 right single quotation mark ή single comma quotation mark ( ’ )

 

Κι έχω τεράστια απορία τι φταίει και συμβαίνει αυτό? Από όσο έχω δει το παθαίνουν κι άλλοι. Είναι κάποιο bug ή κάποια παράβλεψη των ανθρώπων που φτιάχνουν τα character maps? Είναι κάτι που λύνεται με ρύθμιση τοπικά?

 

Αυτό που πιστεύω εγώ (χωρίς να μπορώ να το τεκμηριώσω) είναι ότι οι κωδικοποιήσεις windows-1253 και iso-8859-7 μοιάζουν με αξαίρεση αυτή του Ά. Οπότε ο player μας διαβάζει το αρχείο σαν iso-8859-7 ενώ είναι windows-1253 και έτσι το Ά εμφανίζεται σαν ( ’ ). Αυτό το λέω γιατί αν έχει κάποιος το ίδιο αρχείο στις 2 αυτές κωδικοποιήσεις και δώσει την εντολή file το αποτέλεσμα που θα πάρει θα είναι το ίδιο. Επίσης, αν κάνεις recode το προβληματικό αρχείο (recode windows-1253..iso-8859-7 arxeio.srt πχ) το αρχείο που προκύπτει δεν παρουσιάζει το σφάλμα που λέγαμε.

 

Προς το παρόν για να το αποφεύγω ανοίγω τους υπότιτλους με το openoffice, και κάνω μαζική αντικατάσταση του χαρακτήρα αυτού με Ά

 

Μπορεί κάποιος να βοηθήσει?

Δημοσ.

Το πρόβλημα οφείλεται όντως στο διαφορετικό mapping του τονούμενου Α μεταξύ ISO-8859-7 και WINDOWS-1253. Η λύση είναι το recode. Φτιάξε ένα shell script με το recode για να διορθώνεις τέτοια αρχεία τσακ-μπαμ, αντί του χρονοβόρου search&replace στο OO.o

Δημοσ.

Δεν έχω ασχοληθεί ποτέ μου με shell scripting

 

Προσπάθησα να κάνω κάτι αλλά δε δουλεύει. Μπορεί να βοηθήσει κανείς?

 

>#!/bin/sh
for uri in $NAUTILUS_SCRIPT_SELECTED_URIS; do
recode windows-1253..iso-8859-7 [color="Red"]$NAUTILUS_SCRIPT_CURRENT_URI[/color] &
done

νομίζω ότι κάποιο λάθος υπάρχει στο κόκκινο κομμάτι. Αν δεν είναι όλο λάθος.

 

Γενικά για να κάνω recode χρησιμοποιώ την εντολή recode όπως παραπάνω δίνοτνας στο τέλος το όνομα του αρχείου.

 

 

-----Προστέθηκε 6/12/2008 στις 05 : 23 : 06-----

 

 

Αυτή τη φορά νομίζω ότι το έφτιαξα

 

>#!/bin/sh
for x in *.srt; do recode windows-1253..iso-8859-7 "$x"; done

Δημοσ.

για δοκίμασε αυτό

 

>
#!/bin/bash
ls $HOME/ipotitloi | while read FILE
do
recode windows-1253..iso-8859-7 "$FILE"
done

 

απλά βάλε τα αρχεία με τους υπότιτλους μέσα σε ένα φάκελο με όνομα ipotitloi μέσα στο home σου (ή άλλαξε το path που δίνω) και τρέξε το script (μην ξεχάσεις να το κάνεις εκτελέσιμο με chmod). Αυτό που σου έγραψα δουλεύει και με αρχεία που έχουν spaces στο όνομα.

 

γιαυτό που έγραψες εσύ. δοκίμασε να αντικαταστήσεις το $NAUTILUS_SCRIPT_CURRENT_URI με "$uri" (δεν έχω nautilus και δεν ξέρω τι είναι αυτή η μεταβλητή που χρησιμοποιείς)

 

ΥΓ: νομίζω καλύτερα να μετατρέψεις τα αρχεία σε UTF-8

Δημοσ.

Ευχαριστώ φίλε.

 

Τελικά μου δούλεψε το δεύτερο script που έφτιαξα και για αρχεία με κενά στο όνομα.

 

In all cases, the following environment variables will be set by Nautilus, which the scripts may use:

 

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: newline-delimited paths for selected files (only if local)

 

NAUTILUS_SCRIPT_SELECTED_URIS: newline-delimited URIs for selected files

 

NAUTILUS_SCRIPT_CURRENT_URI: URI for current location

 

NAUTILUS_SCRIPT_WINDOW_GEOMETRY: position and size of current window

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...