Παιδιά, δύο απλά πραγματάκια να κάνετε και δεν θα έχετε πρόβλημα με τα ελληνικά στο .NET. Στην πραγματικότητα, ένα και μόνο. Το άλλο είναι κάτι που δεν πρέπει να γίνεται:
- ΔΕΝ ΠΕΙΡΑΖΟΥΜΕ τα encodings. Το .NET δουλεύει εσωτερικά με Unicode και κάνει τις κατάλληλες μετατροπές μόνο του. Τα προβλήματα αρχίζουν όταν προσπαθούμε να "καρφώσουμε" τα διάφορα encodings, είτε του server είτε του browser είτε της εφαρμογής. Αν βάλουμε μέσα και το locale του μηχανήματος στο οποίο κάνουμε development, έχουμε 4 διαφορετικά σημεία όπου μπορεί να κάνουμε γκάφα.
- Σώζουμε τα αρχεία σε Unicode ή UTF8.
To #2 δυστυχώς προσκρούει στο ότι το παλιό Sourcesafe δεν καταλάβαινε από Unicode και θεωρούσε όλα τα Unicode αρχεία ως binary. Ευτυχώς, το Sourcesafe 2005 δεν έχει τέτοιο πρόβλημα πλέον, ενώ υπάρχουν άλλα πολύ καλύτερα εργαλεία Version Control, όπως το Subversion, που είναι και τσάμπα.
Αν έχουμε κολλήσει πάντως με το παλιό sourcesafe και πρέπει οπωσδήποτε να σώσουμε τα αρχεία σε κάποιο codepage, θα πρέπει να φροντίσουμε το locale του development machine και του τελικού server να είναι το ίδιο, ή να κάνουμε τις κατάλληλες μετατροπές πριν κάνουμε publish τα αρχεία. Ο λόγος είναι ότι ένα text αρχείο δεν περιέχει πουθενά πληροφορία για το codepage με το οποίο φτιάχτηκε. Αν θέλουμε να διαβαστεί το αρχείο σωστά, θα πρέπει και το μηχάνημα που το δημιούργησε, και το μηχάνημα στο οποίο θα γίνει publish, να έχουν το ίδιο codepage.
Εγώ προτιμώ την πρώτη λύση. Βασικά, δεν κάνω τίποτα και είμαι εντάξει!
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos