Για όλα τα codepages ???????????????? Τί βγάζει για το κάθε codepage? Επίσης, δοκίμασες τις άλλες παραμέτρους?
Το καλό είναι ότι αυτοί είναι γραφικοί χαρακτήρες που σημαίνει ότι είναι δυνατή η μετατροπή από το codepage που χρησιμοποίησες χωρίς απώλεια δεδομένων. Ο OLEDB provider δέχεται και την παράμετρο CharacterSet οπότε ίσως έπρεπε να είχες δοκιμάσει και αυτό.
Τον παλιό εκείνο καιρό (μιλάμε για DOS) για να δείξεις ελληνικά έπρεπε να φορτώσεις ελληνικούς χαρακτήρες σε "κάποιο" codepage. Τα 3ψήφια νούμερα αντιστοιχούσαν σε κωδικούς IBM, o ISO έχει τους δικούς του αριθμούς, ενώ τα Windows έχουν άλλη αρίθμηση. Γενικά το 437 το αφήναν ήσυχο αλλά χαρακτήρες φορτώνονταν όπου ήθελες. Τυπικά στην 860, 851, 869. Αργότερα ήρθε και η 737. Ύστερα ήρθε και ο ΕΛΟΤ με το 928, το οποίο βγήκε ως ISO codepage το οποίο δεν χρησιμοποιούσε σχεδόν κανένας, το ISO 8859-7 που αντιστοιχεί στο ... 813? του οποίου οι χαρακτήρες δεν έχουν σχεδόν καμμία σχέση με τους προηγούμενους . Αν δεις τη σελίδα του Wikipedia για codepages αναφέρονται οι 737, 851, 869 για ελληνικά. Η αντιστοίχιση που γινόταν "τότε" δεν είναι απαραίτητα η ίδια που γίνεται σήμερα. Με τα Windows, ήρθε το 1253, αλλά κάποιοι έσωζαν και στο αγγλικό, 1252.
Μπορείς να κάνεις δύο πράγματα, ή να κοιτάξεις ποιά είναι τα ASCII values των χαρακτήρων που επιστρέφονται και να ψάξεις να δεις σε ποιό codepage ανήκουν, ή να δοκιμάσεις με brute force να δεις ποιό code page σου γυρίζει ελληνικό string. Αν ξέρεις τί περιμένεις να βρεις σε μία εγγραφή, αυτός είναι ίσως ο πιο γρήγορος τρόπος.
Από την άλλη, κοιτάζωντας τις σελίδες των διαφόρων codepages στο Wikipedia, (851, 869, 737) θα έλεγα ότι το μόνο που εμφανίζει ελληνικά αντί για γραφικούς χαρακτήρες είναι ...
το 813, που αντιστοιχεί στο ISO 8859-7 και η πρώτη λέξη είναι ΜΑΝΟΣ . Οι χαρακτήρες που δείχνεις είναι από το 437/737, οπότε αναρωτιέμαι πως ακριβώς έγραψες το connection string. Αν δεις όμως τους πίνακες, τα σύβολα που αντιστοιχούν σε αυτούς τους χαρακτήρες στην 737 (204 193 205 207 211 205 201) αντιστοιχούν σε γράμματα μόνο στην 8859-7.
Τώρα μένει να βρεις πως να ορίσεις αυτό το codepage στο connection string. Είναι η IBM 813, ΕΛΟΤ 928, η οποία αντιστοιχεί στο Windows NLS codepage 28597. Η Windows 1253 είναι παρόμοια αλλά διαφέρει στη θέση κάποιων χαρακτήρων. Οπότε μπορεί και το κείμενο να είναι Windows-1253
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos