Page 1 of 1
Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 3:44 pm
by marios
Παίδες θέλω την βοήθεια σας:
Θέλω να έχω ένα κείμενο(στα ελληνικά), και μέσω του προγράμματος να το μετατρέπω σε ascii κωδικούς(π.χ. α=152 β=153 κλπ). Αυτό που έχω φτιάξει ενώ δουλεύει ok για αγγλικούς χαρκτήρες(κάνει cast στα char για να μου γυρίσει int), στα ελληνικά βγάζει άλλα ντ'άλλων... Καμία ιδέα;
Re: Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 3:57 pm
by gasparosoft
Τι σου βγάζει;Νομίζω αν σου βγάζει για α=945 είναι σωστό.Γιατί από ότι θυμάμαι αυτή είναι η δεκαδική του "απεικόνιση".
Re: Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 4:05 pm
by marios
Ισχύει αυτό που λες αλλά μου βγάζει άσχετα(65533)... Αντίθετα όταν τα διαβάζω κατ'ευθείαν σαν int και μετά τα κάνω char δεν έχει πρόβλημα... Αλλά εγώ χρειάζομαι char-->int και οχι int-->char

Re: Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 4:07 pm
by gasparosoft
Εμένα μου δουλεύει πάντως μια χαρά.
Code: Select all
----------------------
char c='α';
int i=(int)c;
System.out.println(i);
----------------------
945
Re: Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 4:15 pm
by marios
Σε αυτό που μου έγραψες και εμένα οκ δουλεύει, όταν διαβάζει από το πληκτρολόγιο string και παίρνω το charAt και το κάνω int έχω το πρόβλημα...
Anyway, thanks!
Re: Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 9:20 pm
by cyberpython
Μήπως παίζει κάτι με το codepage στο τερματικό σου;
Re: Ερώτηση σε Java για char-Ascii
Posted: Tue Sep 30, 2008 9:59 pm
by netharis
Δεν είναι ΑSCII, είναι Unicode. To ΑSCII περιέχει το σύνολο των λατινικών χαρακτήρων.
Επίσης αυτό οφείλεται στη μέθοδο που χρησιμοποιείς για να διαβάσεις το String.
Για παράδειγμα:
Code: Select all
Scanner reader = new Scanner(System.in);
String s = reader.nextLine();
System.out.println(s);
Αυτό δεν δουλεύει σωστά για χαρακτήρες πέρα του ASCII.
Πρέπει να χρησιμοποιήσεις κάποια τεχνική που επιδέχεται αλλαγή του charset, π.χ InputStreamReader.
Re: Ερώτηση σε Java για char-Ascii
Posted: Wed Oct 01, 2008 9:39 am
by marios
Thanks FOX!!!