grep -i και ελληνικά κεφαλαία /πεζά
Giorgos Keramidas
keramida at ceid.upatras.gr
Wed Dec 14 14:18:55 EET 2005
On 2005-12-14 13:37, "Nick Demou (enLogic)" <ndemou at enlogic.gr> wrote:
> Giorgos Keramidas wrote:
> >On 2005-12-14 12:57, "Nick Demou (enLogic)" <ndemou at enlogic.gr> wrote:
> >
> >>... Μην
> >>βρίζετε είμαι γνωστός ταχυγράφος με την μέθοδο Quasi-Blind Fast Random
> >>Hits with Strong Negative Feedback
> >
> >
> >Α αυτό δεν μας το είπες. Κλεψιά! :P
>
> τρικ για να κρατήσω το ενδιαφέρον ψηλά ;-)
>
> >...
> >>Ιδέες?
> >
> >
> >Μέχρι όλος ο κόσμος να το γυρίσει σε UTF-8 (yeah right, καλώς ήρθατε στο
> >όνειρό μας, πάρτε καρέκλα, ποτάκι; σε λίγο έχει και ταινία), μάλλον η
> >καλύτερη λύση είναι όταν συνδέεσαι σε απομακρυσμένα συστήματα να
> >χρησιμοποιείς κάποιο unibyte locale, π.χ. 'C', σε terminal που δεν είναι
> >σε multibyte κατάσταση :-(
>
> ΟΚ, ΟΚ, υποχώρηση λοιπόν από την ουτοπία του UTF-8... δεν πειράζει θα
> ζήσω (ελληνικά και αγγλικά θέλω μόνο).
>
> Το δοκίμασα λοιπόν και φυσικά ... δεν παίζει ακόμα γιατί το environment
> είναι "POSIX". Θα μου πείτε LC_ALL=...; export LC_ALL; LANG... etc αλλά
> στην περίπτωση μου ο χρήστης που κάνει login δεν έχει για shell
> /bin/bash αλλά το /home/pass/pass.py ένα δικό μου python script (security).
Για να έχει 'restricted' shell access?
> Πως θα αλλάξω το environment κάτω από το οποίο τρέχει το python script
> σε iso8859-7?
Δεν ξέρω τόσο καλά Python, αλλά όλο και κάποια κλήση θα έχει η Python
για να θέσει το τρέχον locale... Α νάτο, το βρήκα.
>>> import os, locale
>>> def mylocale(lname, lcat, lval=None):
... locale.setlocale(lcat, lval)
... os.putenv(lname, lval)
... os.environ[lname] = lval
...
>>> mylocale("LC_ALL", locale.LC_ALL, "C")
>>> os.environ['LC_ALL']
'C'
>>> mylocale("LC_ALL", locale.LC_ALL, "el_GR.ISO8859-7")
>>> os.environ['LC_ALL']
'el_GR.ISO8859-7'
>>>
Προσοχή, χρειάζονται *ΚΑΙ* οι 3 κλήσεις στην mylocale(). Η os.putenv()
για να περάσει η τιμή lname=lval σε οποιαδήποτε child processes, η
os.environ[] για το τρέχον process και η locale.setlocale() για να
ενημερωθεί η libc για το τρέχον locale.
More information about the Linux-greek-users
mailing list