Conectați-vă cu Microsoft
Conectați-vă sau creați un cont.
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Rezumat

Unele aplicaţii (în special cele care sunt bazate pe Web) trebuie să se ocupe cu date Unicode care este codificat cu metoda de codificare UTF-8. SQL Server 7.0 și SQL Server 2000 utilizează un alt codificarea Unicode (UCS-2) și nu recunosc UTF-8 ca date valide de caractere. Acest articol discută despre unele opțiuni pentru a face cu această situație.

Mai multe informații

Date Unicode pot fi codificate în mai multe moduri diferite. UCS-2 și UTF-8 sunt două modalități comune pentru a stoca modele de biți care reprezintă caractere Unicode. Microsoft Windows NT, SQL Server, Java, COM, și SQL Server ODBC driver şi furnizor OLEDB toate intern reprezintă date Unicode UCS-2.

Opțiunile pentru utilizarea SQL Server 7.0 sau SQL Server 2000 ca un server back-end pentru o aplicație care trimite și primește date Unicode care este codificat ca UTF-8 se numără:

  1. Dacă aplicația utilizează Active Server Pages (ASP) și utilizați Internet Information Server (IIS) 5.0 și Microsoft Windows 2000, aveți posibilitatea să adăugați "< % Session.Codepage=65001 % >" pentru a vă script server-side de ASP. Acest lucru instruiește IIS pentru a efectua conversia toate șirurile generate dinamic (exemplu: Response.Write) UCS-2 la UTF-8 automat înainte de a le trimite la client.

    Dacă nu doriți să activați sesiuni, puteţi utiliza alternativ Directiva de partea serverului "< % @ cod = 65001 % >".

    Orice UTF-8 date trimise de la client la server prin GET sau POST, de asemenea, este transformată în UCS-2 automat. Proprietatea Session.Codepage este metoda recomandată pentru a gestiona datele UTF-8 în decurs de o aplicație web. Această setare de cod nu este disponibilă în IIS 4.0 și Windows NT 4.0. Pentru informaţii suplimentare, consultaţi următorul articol din baza de cunoștințe Microsoft:

    Mesaj de eroare 254313 : pagini de Active Server Error ' ASP 0203' Invalid cod

  2. Traduce în și din UCS-2 sau UTF-8 corespunzător în cadrul aplicației. Exemplu de cod pentru acest tip de conversie se află în Unicode Consortium pe site-ul:

    ftp://ftp.unicode.org/Public/PROGRAMS/CVTUTF/Descrierea algoritmul conversia UCS-2 la UTF-8 la nivel înalt pot fi găsite în documentul Internet solicitare pentru comentarii RFC2279.

    În Windows NT sau Windows 2000, aveți posibilitatea să utilizați funcțiile Win32 MultiByteToWideChar și WideCharToMultiByte pentru a efectua conversia UTF-8 în și din UCS-2 trecând CP_UTF8 constantă (65001) ca prim parametru în funcții.

  3. Modificați aplicația pentru a utiliza UCS-2 în loc de codificare UTF-8.

  4. Stoca date reale UTF-8 pe server utilizând coloanele BINARY, VARBINARY, imagini. Stocarea datelor UTF-8 pe SQL Server înseamnă că nu utilizați SQL Server pentru a sorta sau găsi intervale de aceste valori, ca în cazul în care datele au fost date valide de caractere. Tipuri de operațiuni de coloane care conține date UTF-8, care nu va returna rezultate așteptat includ "ORDER BY", mai mare-decât ">" şi mai puţin-decât "<" compararea și SQL Server șir de manipulare funcțiile predefinite, cum ar fi SUBSTRING().

    Cu toate acestea, compararea egal, funcționează atât timp cât sunt echivalente şirurile comparate la un nivel de octeți. Rețineți că, dacă vă stocați UTF-8 de date în SQL Server tu trebiue nu folos coloane caracter (CHAR/NCHAR/VARCHAR și așa mai departe). UTF-8 nu este validă caracter date la SQL Server și stocarea datelor non-caractere în caractere coloane riscați se confruntă cu probleme, cum ar fi problemele discutate în următoarele articole din baza de cunoștințe Microsoft:

    155723 INF: SQL Server trunchiere de un șir de caractere DBCS

    234748 PRB: SQL Server ODBC Driver transformă Language evenimente cu Unicode
    Dacă aveţi în vedere această opțiune, să reţineţi că dacă aveți nevoie de a accesa date UTF-8 stocate în SQL Server din orice aplicație decât un browser Web (de exemplu, dintr-o aplicație ODBC non-Web-based) va trebuie să faceți o conversie de la UTF-8 la UCS-2 în această aplicație ODBC, OLEDB, COM, apeluri Win32 API, VB și C runtime șir funcții de manipulare nu funcționează cu date UTF-8. Acest lucru se mută sarcina de traducere în altă aplicație.

  5. Dacă cerințele nu includ necesitatea de a stoca date dintr-o combinație de limbi care nu pot fi îndeplinite un singur pagina de coduri, nu trebuie să utilizați Unicode.

Unicode suport a fost introdus la SQL Server începând cu SQL Server 7.0. Deoarece SQL Server 6.5 nu acceptă stocarea de date Unicode, numai opțiunile pentru SQL Server 6.5 sunt menționate în pașii 4 și 5.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?

Vă mulțumim pentru feedback!

×