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

Java greek encoding


Novas

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

Δημοσ.

Μήπως ξέρει κανείς πως μπορώ να διαβάσω και να εκτυπώσω στην οθόνη ελληνικούς χαρακτήρες χρησιμοποιώντας Java; Βασικά χρησιμοποιώ τον Jcreator ως editor και συνδέομαι μέσω ODBC σε Access για να ανακτήσω τα δεδομένα που χρειάζομαι. Όταν όμως προσπαθώ να τα εκτυπώσω σε dos console, αυτά εμφανίζονται εν ολίγοις ακαταλαβίστικα, δεδομένου ότι στην Access είναι αποθηκευμένα με ελληνικούς χαρακτήρες. Το πρόγραμμα (desktop java application) εν ολίγοις που έχω φτιάξει δέχεται από το χρήστη ένα input, το οποίο ενσωματώνεται σε μια ερώτηση SQL και επιστρέφει τα ανάλογα αποτελέσματα. Μήπως μπορεί κανείς να προτείνει κάτι;

Δημοσ.

Κάνε system("chcp 1253")

 

system είναι η διαδικασία εκτέλεσης εντολών συστήματος στην C, δεν ξέρω πως είναι στην java.

Δημοσ.

Φίλε μου συγγνώμη εκ των προτέρων γι' αυτό που θα σου πω, αλλά αυτή δεν είναι σοβαρή απάντηση.

Δημοσ.

Γιατί βρε δεν είναι σοβαρή απάντηση; Εννοείς ότι δεν κατάλαβες ότι σου λύνει το πρόβλημα;

 

Τα Windows και ο editor της Java χρησιμοποιούν windows-1253, το DOS 737. Άμα αλλάξεις κωδικοσελίδα στο DOS (προσωρινά, μέσα από το πρόγραμμά σου) όλα θα φαίνονται ΟΚ.

 

Φυσικά θα υπάρχει κι άλλος τρόπος, δηλαδή να λες στην java να κάνει output κατευθείαν σε 737, αλλά κι αυτός που σου πρότεινα μια χαρά δουλεύει.

 

Περιμένω εξήγηση γιατί δεν ήταν σοβαρή η απάντηση!

Δημοσ.

Κώδικας που έχω γράψει για να τυπώνει ελληνικά:

import java.io.*;

import java.nio.*;

import java.nio.charset.*;

class test {

public static void main (String[] args){

 

try {

BufferedReader in = new BufferedReader(new InputStreamReader(System.in,"ISO-8859-7"));

String str = "";

while (str != null) {

System.out.print("> prompt ");

str = in.readLine();

// Create the encoder and decoder for ISO-8859-7

Charset charset = Charset.forName("ISO-8859-7");

CharsetDecoder decoder = charset.newDecoder();

CharsetEncoder encoder = charset.newEncoder();

 

// Convert a string to ISO-LATIN-7 bytes in a ByteBuffer

// The new ByteBuffer is ready to be read.

ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(str));

 

// Convert ISO-LATIN-7 bytes in a ByteBuffer to a character ByteBuffer and then to a string.

// The new ByteBuffer is ready to be read.

CharBuffer cbuf = decoder.decode(bbuf);

String s = cbuf.toString();

System.out.println(s);

}

} catch (IOException e) {

}

}

}

  • 2 εβδομάδες αργότερα...
Δημοσ.

Η dos κονσόλα δεν τυπώνει ελληνικά. Για να δεις αν όντως γράφεις ελληνικά δύο πράγματα μπορείς να κάνεις

 

1) γράψε τα δεδομένα σου σε ένα αρχείο

2) διάβασέ τα από τη βάση και τύπωσέ τα σε κάποιο Java gui αντικείμενο (π.χ. panel)

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

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

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