Περιγραφή της αποθήκευσης δεδομένων UTF-8 στον SQL Server

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 232580 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Ορισμένες εφαρμογές (ιδίως εκείνα που βασίζεται σε Web) πρέπει να χειριστείτε δεδομένα Unicode που είναι κωδικοποιημένα με τη μέθοδο κωδικοποίησης UTF-8. SQL Server 7.0 και τον SQL Server 2000 για να χρησιμοποιήσετε μια διαφορετική κωδικοποίηση Unicode (UCS-2) και δεν αναγνωρίζουν UTF-8 ως έγκυρος χαρακτήρας δεδομένα. Αυτό το άρθρο ασχολείται με ορισμένες επιλογές για την αντιμετώπιση αυτής της κατάστασης.

Περισσότερες πληροφορίες

Δεδομένα Unicode σε κωδικοποιηθούν με πολλούς διαφορετικούς τρόπους. UCS-2 και UTF-8 είναι δύο Συνηθισμένοι τρόποι για την αποθήκευση μοτίβων bit που αναπαριστούν χαρακτήρες Unicode. Τα Microsoft Windows NT, SQL Server, Java, COM, και το πρόγραμμα οδήγησης SQL Server ODBC και υπηρεσία παροχής OLEDB όλα τα εσωτερικά αντιπροσωπεύουν δεδομένα Unicode ως UCS-2.

Οι επιλογές για τη χρήση του SQL Server 7.0 ή SQL Server 2000 ως διακομιστή υποστήριξης για μια εφαρμογή που στέλνει και λαμβάνει δεδομένα Unicode που κωδικοποιούνται ως UTF-8 περιλαμβάνουν:
  1. Εάν η εφαρμογή σας χρησιμοποιεί Active Server Pages (ASP) και χρησιμοποιείτε Internet Information Server (IIS) 5.0 και Microsoft Windows 2000, μπορείτε να προσθέσετε δέσμη ενεργειών ASP πλευράς διακομιστή "< % Session.Codepage=65001% >". Αυτό καθοδηγεί τις υπηρεσίες IIS, για να μετατρέψετε όλες τις συμβολοσειρές που δημιουργήθηκε δυναμικά (παράδειγμα: Response.Write) από το UCS-2 σε UTF-8 αυτόματα πριν από την αποστολή του υπολογιστή-πελάτη.

    Εάν δεν θέλετε να ενεργοποιήσετε τις περιόδους λειτουργίας, μπορείτε να χρησιμοποιήσετε εναλλακτικά οδηγία διακομιστή "< % @ CodePage = 65001% >".

    Οποιαδήποτε UTF-8 δεδομένα που αποστέλλονται από τον υπολογιστή-πελάτη στο διακομιστή μέσω GET ή POST επίσης μετατρέπονται αυτόματα σε UCS-2. Η ιδιότητα Session.Codepage είναι η προτεινόμενη μέθοδος χειρισμού UTF-8 δεδομένα μέσα σε μια εφαρμογή web. Αυτή η ρύθμιση κωδικοσελίδα δεν είναι διαθέσιμη στον IIS 4.0 και Windows NT 4.0. Για πρόσθετες πληροφορίες, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
    254313 Μήνυμα σφάλματος: Σφάλμα Active Server σελίδες 'ASP 0203' μη έγκυρος κώδικας
  2. Μετάφραση από UCS-2 ή UTF-8 και κατάλληλα μέσα στην εφαρμογή. Δείγμα κώδικα για αυτόν τον τύπο μετατροπής που βρίσκεται στην τοποθεσία Unicode Consortium:

    FTP://FTP.Unicode.org/Public/PROGRAMS/CVTUTF/
    Μπορείτε να βρείτε μια περιγραφή υψηλού επιπέδου της τον αλγόριθμο για τη μετατροπή UCS-2 σε UTF-8 στο έγγραφο Internet αίτησης για σχόλια RFC2279.

    Στα Windows NT ή Windows 2000, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις Win32 MultiByteToWideChar AND WideCharToMultiByte Για να μετατρέψετε UTF-8 από UCS-2 και μεταβιβάζοντας τη σταθερά CP_UTF8 (65001) ως πρώτη παράμετρο με τις λειτουργίες.
  3. Τροποποίηση στην εφαρμογή να χρησιμοποιήσει UCS-2 αντί για κωδικοποίηση UTF-8.
  4. Αποθηκεύσετε τα πραγματικά δεδομένα UTF-8 στο διακομιστή χρησιμοποιώντας στήλες ΔΥΑΔΙΚΌ/VARBINARY ΕΙΚΌΝΑ. Αποθήκευση δεδομένων UTF-8 στον SQL Server σημαίνει ότι μπορείτε να χρησιμοποιήσετε SQL Server για να ταξινομήσετε ή να εντοπίσετε περιοχές αυτές τις τιμές δεδομένων σαν δεδομένων έγκυρος χαρακτήρας. Τύποι λειτουργιών σε στήλες που περιέχουν UTF-8 δεδομένα που θα επιστρέψει αποτελέσματα περιλαμβάνουν "ΠΑΡΑΓΓΕΛΊΑ από", μεγαλύτερη-από ">" και μικρότερες-από "<" comparisons,="" and="" the="" built-in="" sql="" server="" string="" manipulation="" functions="" such="" as=""></">

    Ωστόσο, ισότητα συγκρίσεις, θα λειτουργούν ως συμβολοσειρές που συγκρίνονται είναι ισοδύναμο επίπεδο byte. Σημείωση Εάν αποθηκεύσετε UTF-8 δεδομένα σε SQL Server πρέπει να δεν να χρησιμοποιήσετε στήλες χαρακτήρας (CHAR/NCHAR/VARCHAR και ούτω καθεξής). UTF-8 δεν είναι έγκυρος χαρακτήρας δεδομένων στον SQL Server και αποθηκεύοντας τα δεδομένα μη χαρακτήρων σε στήλες χαρακτήρων που υπάρχει κίνδυνος να συναντάτε προβλήματα όπως τα ζητήματα που περιγράφονται στα ακόλουθα άρθρα της Γνωσιακής Βάσης της Microsoft:
    155723 INF: SQL Server Περικοπή συμβολοσειράς DBCS
    234748 PRB: Πρόγραμμα οδήγησης SQL Server ODBC μετατρέπει συμβάντα γλώσσας σε Unicode
    Εάν εξετάζετε αυτήν την επιλογή, να θυμάστε ότι, εάν ποτέ χρειαστεί να αποκτήσετε πρόσβαση UTF-8 δεδομένα αποθηκεύονται μέσα σε SQL Server από οποιαδήποτε εφαρμογή, εκτός από ένα πρόγραμμα περιήγησης Web (για παράδειγμα, από μια εφαρμογή ODBC δεν βασίζονται σε Web) θα πρέπει να κάνετε μετατροπή από UTF-8 UCS-2 σε αυτήν την εφαρμογή ως ODBCOLEDB, COM, κλήσεις API του Win32, VB και χρόνου εκτέλεσης c συμβολοσειράς χειρισμό λειτουργίες δεν λειτουργούν με δεδομένα UTF-8. Αυτό μετακινεί το βάρος της μετάφρασης σε άλλη εφαρμογή.
  5. Εάν οι απαιτήσεις σας περιλαμβάνουν την ανάγκη αποθήκευσης δεδομένων από ένα συνδυασμό γλώσσες που δεν είναι δυνατό να ικανοποιήσει μία κωδικοσελίδα, ίσως δεν χρειάζεται να χρησιμοποιήσετε Unicode.
Παρουσιάστηκε υποστήριξη Unicode στο διακομιστή SQL, ξεκινώντας με τον SQL Server 7.0. Δεδομένου ότι το SQL Server 6.5 δεν υποστηρίζει την αποθήκευση δεδομένων Unicode, μόνο επιλογές για τον SQL Server 6.5 περιγράφονται στο βήμα 4 και 5.

Ιδιότητες

Αναγν. άρθρου: 232580 - Τελευταία αναθεώρηση: Παρασκευή, 27 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Λέξεις-κλειδιά: 
kbinfo kbmt KB232580 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:232580

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com