Έχουμε αναφερθεί μυριάδες φορές στο θέμα των ελληνικών και η απάντηση είναι πάντα μία. Δεν υπάρχει πρόβλημα, εκτός και αν το δημιουργήσεις. Αν σώζεις unicode στη βάση, τα aspx αρχεία σου είναι σωσμένα σε Unicode ή UTF8 και δεν "καρφώνεις" μετατροπές εκεί που δεν χρειάζονται (π.χ. να "καρφώσεις" ένα 1253 παρότι η σελίδα είναι unicode) τα ελληνικά, βουλγάρικα, ουκρανικά ακόμα και γιαπωνέζικα θα φαίνονται σωστά. Για τα κινέζικα δεν είμαι 100% σίγουρος, νομίζω ότι αυτά απαιτούν UTF32
Τα ??? μου λένε ότι κάπου έχετε "καρφώσει" κάποιο ελληνικό codepage και ο server που χρησιμοποιείτε δεν έχει ελληνικό locale. "Καρφώσει" σημαίνει είτε ότι έχετε χρησιμοποιήσει varchar αντί για nvarchar στη βάση, ή σε κάποιο σημείο έχετε "καρφώσει" ελληνικό codepage στη σελίδα, ή κάνετε μετατροπή από το ένα codepage στο άλλο με το χέρι. Τα Windows (και κατ' επέκταση το ASP.NET) χρησιμοποιούν το codepage του system locale για να χειριστούν non-unicode strings. Αν η μετατροπή από το ένα locale στο άλλο δεν είναι εφικτή οι χαρακτήρες που δεν μετατρέπονται αντικαθίστανται με ? Συνήθως το πρόβλημα εμφανίζεται μετά από "κάρφωμα" στη βάση.
Αν το (ακόμα απροσδιόριστο) backend είναι MySQL θα πρέπει να έχετε υπόψη ότι δεν υπάρχει nvarchar τύπος αλλά θα πρέπει να ορίσεται ότι το codepage της βάσης ή του πίνακα που σας ενδιαφέρει είναι το UTF8. Εξαιτίας ενός bug με τον MySQL Connector θα πρέπει να ορίσετε το UTF8 ΚΑΙ στο connection string, διαφορετικά δεν θα γίνει σωστή αποθήκευση στη βάση.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos