Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Ελληνικοί χαρακτήρες σε MSSQL ανεβασμένη σε hoster

Îåêßíçóå áðü ôï ìÝëïò gspiros. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 29-09-2007, 10:47. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-09-2007, 19:46 35590

    Ελληνικοί χαρακτήρες σε MSSQL ανεβασμένη σε hoster

    Αποθηκεύω μέσω ενός WebForm κάποια strings που περιέχουν ελληνικούς χαρακτήρες σε μια βάση MSSQL.
    Όταν κάνω insert τα δεδομένα στην βάση του υπολογιστή μου, όλα δουλεύουν καλά.
    Όταν όμως κάνω insert σε ίδια βάση που βρίσκεται σε κάποιον hoster, τότε φαίνονται κινέζικα.
    Πως διορθώνεται αυτό?
  •  28-09-2007, 21:30 35606 σε απάντηση της 35590

    Απ: Ελληνικοί χαρακτήρες σε MSSQL ανεβασμένη σε hoster

    Μήπως χρησιμοποιείς varchar πεδία αντί για nvarchar? Αυτό αρκεί για να σου δημιουργήσει το πρόβλημα. Είναι πολύ απλό να χρησιμοποιήσεις ελληνικά (και ρουμάνικα και γαλλικά και σουηδικά όλα μαζί) αν χρησιμοποιείς nvarchar πεδία και ΔΕΝ εκτελείς δυναμικά sql statements. Έτσι κι αλλιώς η εκτέλεση χύμα SQL είναι κακό-κακό. Αν εκτελέσεις ένα parameterized query με παραμέτρους nvarchar δεν θα έχεις κανένα πρόβλημα.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  28-09-2007, 23:22 35612 σε απάντηση της 35606

    Απ: Ελληνικοί χαρακτήρες σε MSSQL ανεβασμένη σε hoster

    Λοιπόν, με αφορμή αυτό το thread, θα ήθελα να κάνω μια παρέμβαση-πρόταση. Προτείνω να ξεκινήσουμε μία λίστα best practices/faq, σχετικά απλή, για διάφορους τομείς (πχ βάσεις δεδομένων, winforms, web services, το ίδιο το dotnetzone κλπ).

    Οι λίστες αυτές, μπορούν να περιέχουν τα συνηθέστερα
    λάθη, best practices, how-not-tos κλπ. Το επόμενο βήμα, είναι να "διαφημίζονται" με κάποιο banner ή κείμενο ψηλά στα forums, έτσι ώστε να είναι lazy friendly, και να μπορεί ο κάθε χρήστης να τα δει με... μισό κλικ.


    Ειδικά για την περίπτωση του nvarchar έχουμε μάλλον 2ψήφιο αριθμό θεμάτων, όσο για τις μη κλεισμένες απαντήσεις εκεί τα νούμερα αυξάνονται ακόμα περισσότερο. Δεν κατηγορώ (πολύ) τους χρήστες, αλλά νομίζω έτσι θα βοηθήσουμε αρκετά.

    Περιμένω τις απόψεις σας, και αν κρίνετε απαραίτητο, μετακινήστε με σε άλλο thread.

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  29-09-2007, 00:18 35613 σε απάντηση της 35612

    Απ: Ελληνικοί χαρακτήρες σε MSSQL ανεβασμένη σε hoster

    Όντος varchar χρησιμοποιώ και όχι nvarchar, αλλά γιατί το πρόβλημα υπάρχει μόνο στην βάση του hoster???
    Με nvarchar δουλεύει μια χαρά!
  •  29-09-2007, 10:47 35620 σε απάντηση της 35613

    Απ: Ελληνικοί χαρακτήρες σε MSSQL ανεβασμένη σε hoster

    Ο MSSQL έχει την "τάση" - με απλά λόγια είναι ένα feature - να κάνει βασική κωδικοσελίδα ταξινόμισης την βασική κωδικοσελίδα του μηχανήματος που φιλοξενείται. Μέχρι τον SQL 2000 αυτό ήταν καταστροφικό γιατί για να έχεις διαφορετική κωδισελίδα σε μια βάση, από αυτή που είχε επιλέξει ο MSSQL κατά την εγκαταστασή του - να κάνω ξεκάθαρο εδώ ότι δεν επιλέγει αυτόματα το setup, αλλά συνήθως δεν δίνει σημασία αυτός που κάνει την εγκατάσταση λόγω κεκτημένης ταχύτητας - θα έπρεπε να ξαναδημιουρήσεις τις βασικές βάσεις της εγκατάστασης στην κωδικοσελίδα που επιθυμούσες (Βλ microsoft support kb). Το ενοχλητικό πρόβλημα αυτό δεν υπάρχει στον MSSQL 2000 και νεώτερες εκδόσεις μιας και μπορεί κάθε βάση στο server να έχει δική της κωδικοσελίδα.

    Προσωπικά δεν χρησιμοποιώ ποτέ nvarchar πεδία - συνήθως χρειάζομαι το μέγιστο μέγεθος του τύπου varchar - τους 8000 χαρακτήρες. Ακόμη να έχεις υπόψη ότι τα nvarchar πεδία σου διπλασιάζουν το μέγεθος των αλφαριθμιτικών πεδίων - για κάθε χαρακτήρα απαιτεί 2 bytes, αντί για ένα που απαιτεί το varchar.

    Αυτό που κάνω σε hosted solutions, όταν μιλάμε για SQL 2000 και SQL 2005, με το που φτιάχνω την βάση, και πριν αρχίσω να τρέχω scripts με το schema, είναι να αλλάζω το collation της βάσης σε ελληνικό. Είμαι μια μοναδική εντολή, που μπορείς να βρεις περισσότερες πληροφορίες στο MSDN:

    1
    ALTER DATABASE MyDatabase COLLATE Greek_CI_AS

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems