
Ελληνικά στην .jsp
Ελληνικά στην .jsp
Όταν από τον πίνακα μιας βάσης παίρνω ένα string πεδιο πχ name το οποιό έχει τιμή σε ελληνικούς χαρακτήρες ,δεν μπορώ να το εμφανίσω στην οθόνη σωστά (βγαίνει ώς ???).Τα html ελληνικά πχ στις φορμές κτλ βγαίνουν σωστά άρα δεν πρέπει να είναι το encoding της σελίδας που εμφανίζει o browser. Όταν από την φόρμα παιρνω ελληνικές τιμές μπαίνουν σωστά στην βάση γιατί την ανοίγω με το phpmyadmin και τα ελληνικά που γράφω βγαίνουν σωστά, όπως και όταν χρησιμοποιώ .php κώδικα σε αντίστοιχα αρχεία. Έχει κάποιο κόλλημα ο apache tomcat και τα jsp με τα ελληνικά ή εγώ δεν κάνω κάτι καλά. 

- silegav
- Venus Project Founder
- Posts: 2098
- Joined: Tue Mar 09, 2004 4:03 pm
- Academic status: Alumnus/a
- Location: The Center of the World -> Piraeus
Πρόσφατα, σε μια εφαρμογή που έφτιαξα ταλαιπωρήθηκα πάρα πολύ με τα ελληνικά και το encoding που έπρεπε να χρησιμοποιώ.
Αν την εφαρμογή σου την φτιάχνεις σε netbeans και
χρησιμοποιείς τον Bundled tomcat του Netbeans, χρησιμοποίησε το HTTP Monitor που εμφανίζεται μαζί με το Tomcat Server Output για να δεις τι στέλνεται από την φόρμα και γενικά τι κυκλοφορεί ανάμεσα στις σελίδες που ανοίγεις.
Αν εκεί δεις τα ??? λογικά είναι η σελίδα, αν δεν είναι εκεί ??? και χαλάει μετά, όταν το λύσεις πες μου κι εμένα για να φτιάξω το δικό μου!
Αν την εφαρμογή σου την φτιάχνεις σε netbeans και
χρησιμοποιείς τον Bundled tomcat του Netbeans, χρησιμοποίησε το HTTP Monitor που εμφανίζεται μαζί με το Tomcat Server Output για να δεις τι στέλνεται από την φόρμα και γενικά τι κυκλοφορεί ανάμεσα στις σελίδες που ανοίγεις.
Αν εκεί δεις τα ??? λογικά είναι η σελίδα, αν δεν είναι εκεί ??? και χαλάει μετά, όταν το λύσεις πες μου κι εμένα για να φτιάξω το δικό μου!

- Einherjar
- Venus Project Founder
- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
- Contact:
Κατ'αρχας τι DBMS χρησιμοποιείς (MySQL/SQL Server/...).
Δεύτερον, παίζει το encoding που χρησιμοποιείς στη βάση σου να είναι διαφορετικό με το encoding που έχεις στην υπόλοιπη σελίδα σου και δε γίνεται να έχεις διαφορετικά encodings στην ίδια σελίδα. Δοκίμασε για την ίδια σελίδα να βάλεις στην αρχή πρώτα το και στη συνέχεια Το πρόβλημα υπάρχει και στις 2 περιπτώσεις? (εννοείται ότι στα παραπάνω κομμάτια κώδικα βάζεις και ότι imports χρειάζεσαι)
Δεύτερον, παίζει το encoding που χρησιμοποιείς στη βάση σου να είναι διαφορετικό με το encoding που έχεις στην υπόλοιπη σελίδα σου και δε γίνεται να έχεις διαφορετικά encodings στην ίδια σελίδα. Δοκίμασε για την ίδια σελίδα να βάλεις στην αρχή πρώτα το
Code: Select all
<%@page pageEncoding="UTF-8"%>
Code: Select all
<%@page pageEncoding="iso-8859-7"%>
[Better to understand a little than to misunderstand a lot]
- Einherjar
- Venus Project Founder
- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
- Contact:
Συχνά το πρόβλημα είναι στον τρόπο που μπαίνουν τα δεδομένα στη βάση. Ξέχασα να στο πω παραπάνω. Τα βάζεις και χερουκλάτα ή μόνο από φόρμα?
Εκεί που επεξεργάζεσαι το request από τη φόρμα (και πριν αρχίσεις την επεξεργασία του) θέσε ρητά το encoding με Στην σελίδα που παίρνεις τα δεδομένα μπρέπει να έχεις το ίδιο encoding μερ τον τρόπο που ανέφερα στο προηγούμενο post μου. Με το phpmyadmin μπορεί να τα δεις κουβάρι αν τα βάλεις με τον συγκεκριμένο τρόπο και ανάλογα με το encoding που έχεις επιλέξει από το πρόγραμμα, αλλά σου εγγυώμαι 95% επιτυχία!
Τώρα δε ξέρω αν κάτι τέτοιο θα παίξει με άλλο encoding εκτός από unicode, αλλά είσαι βέβαια ελεύθερος να παίξεις
Εκεί που επεξεργάζεσαι το request από τη φόρμα (και πριν αρχίσεις την επεξεργασία του) θέσε ρητά το encoding με
Code: Select all
request.setCharacterEncoding("UTF-8");
Τώρα δε ξέρω αν κάτι τέτοιο θα παίξει με άλλο encoding εκτός από unicode, αλλά είσαι βέβαια ελεύθερος να παίξεις

[Better to understand a little than to misunderstand a lot]
Όχι μόνο από την φόρμα οπότε θα το δοκίμασω και θα δω,όπως πιστεύω ότι θα κάνει και ο παραπάνω φίλος που είχε παρόμοιο πρόβλημα...Σε ευχαριστώ 

H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
Τελικά δεν κατάφερα να το λύσω δοκίμασα και τα τρια encodings ,το unicode δεν μου έπαιξε καθόλου καλά μου έκανε τα html μηνύματα στην σελίδα και στον τίτλο κουτάκια, σκέφτομαι μήπως φταίει ότι οι φόρμες φτιάχθηκαν με το frontpage(font face="Arial" υπάρχει περίπτωση να είναι αυτό που μου τα χαλάει?)
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
- Einherjar
- Venus Project Founder
- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
- Contact:
Καλά που άφησα το 5% 
Το πρόβλημα που λες το έχω αντιμετωπίσει με τον τρόπο που ανέφερα, αλλά με SQL Server 2005.
Θεωρώ απίθανο να παίζει ρόλο το font που χρησιμοποιείς.
Το τελευταίο που μπορώ να σκεφτώ είναι το encoding με το οποίο δημιούργησες τη βάση σου. Δες για την έκδοση MySQL server που χρησιμοποιείς πως ορίζεις συγκεκριμένο encoding για τη βάση και... καλή τύχη από μένα

Το πρόβλημα που λες το έχω αντιμετωπίσει με τον τρόπο που ανέφερα, αλλά με SQL Server 2005.
Θεωρώ απίθανο να παίζει ρόλο το font που χρησιμοποιείς.
Το τελευταίο που μπορώ να σκεφτώ είναι το encoding με το οποίο δημιούργησες τη βάση σου. Δες για την έκδοση MySQL server που χρησιμοποιείς πως ορίζεις συγκεκριμένο encoding για τη βάση και... καλή τύχη από μένα

[Better to understand a little than to misunderstand a lot]
Δίκιο πρέπει να έχεις.Τελικά ίσως να φταίει η mysql.Επιπρόσθετα στην εργασιά του Βασσαλού την είχα κάνει με τον sql server 2000 και έχω την εντύπωση ότι εκεί είχα χρησιμοποιήσει ελληνικά χωρίς πρόβλημα,πάντως σε ευχαριστώ για τις ιδέες σου
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest