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

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

Δημοσ.

Έχω ελληνική έκδοση windows και εκτελώ ας πούμε εντολή dir > test.txt στο command line και μου βγαζει

 

«ζ£¦ ©« £¦¤α› ›ε©΅¦¬ C ›¤ β®  « ΅β«

¨ £ζ © ¨α «¦¬ «ζ£¦¬ ε¤  E43A-9418

 

‰«αΆ¦¦ «¦¬ C:\Documents and Settings\user

 

14/06/2012 04:45 ££ <DIR> .

14/06/2012 04:45 ££ <DIR> ..

 

Πως να κάνω έτσι ώστε να μου βγάζει ελληνικούς χαρακτήρες ?

Δημοσ.

Θα παίξει αν δώσεις πρώτα

 

>chcp 1253

 

ή

 

>chcp 65000

 

αλλά αυτό έχει διάφορες συνέπειες τις οποίες θα πρέπει να λάβεις υπόψη σου ανάλογα με το πώς πρόκειται να χρησιμοποιήσεις το αρχείο.

Δημοσ.

Πριν το dir > test.txt

τρέξε chcp 1253

 

 

Το αρχείο που θα σου βγάλει θα "διαβάζεται" κανονικά από το notepad αλλά μέσα στο cmd αν δεν αλλάξεις τα Font απο τα default "Raster" σε Lucida Console ή Console, θα τα βλέπεις "κινέζικα" τα ελληνικά.

 

 

EDIT

Με πρόλαβε ο defacer :rolleyes:

  • Like 1
Δημοσ.

To chcp 65000 καλύτερα να το αποφύγεις. Είναι ένα ανάπηρο UTF8 με πολλά προβλήματα.

Το chcp 1253 είναι τα πιο ολοκληρωμένα ελληνικά για την κονσόλα των Windows, οπότε φρόντισε να σώζεις και τα πηγαία σου αρχεία σε αυτή την κωδικοποίηση πριν τα κάνεις compile.

 

Είναι καλή ιδέα επίσης να φτιάξεις κι ένα mycmd.bat file που θα γυρίζει την κωδικοποίηση της κονσόλα σε chcp 1253. Δεν σου λέω να το μονιμοποιήσεις στο registry, γιατί για να παίξει είτε η 1253 είτε η 65000 στη κονσόλα, πρέπει να της αλλάξεις και το font (από raster που είναι, σε Lucida console ή σε Consolas -αν έχεις 7άρια). Η αλλαγή γίνεται από τις Ιδιότητες του παραθύρου της κονσόλας, από το μενού στην πάνω αριστερή γωνία του).

  • Like 1
Δημοσ.

Φαινότανε πως δουλεύει αλλά όταν τρέχω μέσα από PHP με system('chcp 1253'); system('dir > test.txt'); πάλι

δεν βγάζει άκρη .ΘΕΜΑΤΑΡΑ ε?

Όμως τώρα έβαλα τις εντολές σε ένα .bat και κάλεσα το bat και το έκανε

Δημοσ.

EDIT:

 

Με την ευκαιρία, παραθέτω ένα απόσπασμα από το δικό μου "mycmd.bat" που χρησιμοποιεί το παραπάνω, συν μερικά ακόμα...

 

>
@echo off
prompt $e[32m%USERNAME%@%USERDOMAIN% $e[1;33m$P$_$G$S$e[0m

REM --- Some Useful Aliases

doskey ..=cd ..
doskey x=exit
doskey mysrc=chdir c:\unix\mysrc $1
doskey mycsrc=chdir c:\unix\mysrc\c $1

REM --- Aliases for apps

doskey npp="C:\Programs\Notepad++\notepad++.exe" $*

REM 
ansicon -p
cmd /d /u /k chcp 1253

Η 2η και η προτελευταία γραμμή προϋποθέτουν την ύπαρξη του ansicon στο %PATH% των Windows, το οποίο ουσιαστικά επιτρέπει τη διαχείριση χρωμάτων στην κονσόλα με ANSI escape-codes (όπως στο Linux/Unix). Αν δεν το έχετε, αφαιρέστε τη 2η και την προτελευταία γραμμή. Οι ενδιάμεσες γραμμές είναι απλώς δείγμα ορισμού μερικών aliases για προγράμματα και διαδρομές που χρησιμοποιώ συχνά.

 

Το οπτικό αποτέλεσμα είναι κάπως έτσι...

 

post-38307-0-67891400-1339685105_thumb.jpg

 

EDIT2:

 

Φαινότανε πως δουλεύει αλλά όταν τρέχω μέσα από PHP με system('chcp 1253'); system('dir > test.txt'); πάλι

δεν βγάζει άκρη .ΘΕΜΑΤΑΡΑ ε?

Πρέπει να αλλάξεις και το font του παραθύρου της κονσόλας που ανοίγει.

Δημοσ.

Φαινότανε πως δουλεύει αλλά όταν τρέχω μέσα από PHP με system('chcp 1253'); system('dir > test.txt'); πάλι δεν βγάζει άκρη.

Προφανώς (λέμε τώρα) γιατί οι 2 εντολές εκτελούνται σε διαφορετική κονσόλα. Θα έπιανε αν έδινες system('chcp 1253 & dir > test.txt').

 

ΘΕΜΑΤΑΡΑ ε?

Βασικά όχι. Το μεγαλύτερο μέγεθος εδώ δεν το έχει το θέμα αλλά η έλλειψη διάθεσης που έχεις για να μάθεις πως δουλεύουν όλα αυτά.

 

Στη συγκεκριμένη περίπτωση πας ας πούμε και κάνεις κάτι που θα γινόταν χίλιες φορές καλύτερα με glob(), η οποία βέβαια δε θα δούλευε με τα ελληνικά στα Windows αλλά αυτό δεν το ήξερες.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...