Popis ukladanie dát UTF-8 v SQL Server

Preklady článku Preklady článku
ID článku: 232580 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

SUHRN

Niektoré aplikácie, (najmä tie, ktoré sú internetové) musia zaoberať údaje s kódovaním Unicode, ktorý je kódovaný kódovania metóda UTF-8. SQL Server 7.0 a SQL Server 2000 použiť rôzne kódovanie Unicode (UCS-2) a nerozpoznávajú UTF-8 ako platné znakových údajov. Tento článok popisuje niektoré možnosti na riešenie tejto situácie.

DALSIE INFORMACIE

Môžu byť zakódované údaje s kódovaním Unicode v mnohých rôznymi spôsobmi. UCS-2 a UTF-8 dvoma spôsobmi spoločnej ukladať bitové vzory, ktoré predstavujú znaky Unicode. Systém Microsoft Windows NT, SQL Server, Java, COM, a ovládača SQL Server ODBC a OLEDB poskytovateľ všetkých vnútorne predstavujú údaje s kódovaním Unicode ako UCS-2.

Možnosti pre pomocou SQL Server 7.0 alebo SQL Server 2000 ako backend server pre aplikáciu, ktorá odosiela a prijíma údaje s kódovaním Unicode, ktorý je kódovaný ako UTF-8 zahŕňajú:
  1. Ak používate Internet Information Server (IIS) 5.0 a Microsoft Windows 2000, vaša aplikácia používa stránky ASP (Active Server), môžete pridať "< % Session.Codepage=65001% >" na váš server-bočné ASP skript. Tento pokyn IIS previesť všetky dynamicky generované reťazce (príklad: Response.Write) z UCS-2 na UTF-8 automaticky pred ich odoslaním klienta.

    Ak nechcete umožniť relácie, prípadne môžete použiť server-bočné smernice "< % @ CodePage = 65001% >".

    Akékoľvek UTF-8 údaje odoslané z klienta na server pomocou GET alebo POST je tiež prevedený na UCS-2 automaticky. Vlastnosť Session.Codepage je Odporúčaná metóda zvládnuť UTF-8 údajov v rámci webovej aplikácie. Toto nastavenie kódovej stránky nie je k dispozícii na IIS 4.0 a Windows NT 4.0. Pre ďalšie informácie pozri článok v databáze Microsoft Knowledge Base:
    254313 Chybové hlásenie: Chyba na stránky aktívneho servera „ASP 0203"Neplatný kód
  2. Preložiť z UCS-2 alebo UTF-8 a podľa potreby v rámci aplikácie. Vzorky kód pre tento druh konverzie sa nachádza na lokalite Unicode Consortium:

    FTP://FTP.Unicode.org/public/Programs/CVTUTF/
    Vysokej úrovni Popis algoritmu na konverziu UCS-2 na UTF-8 možno nájsť v dokumente Internet požiadať pre komentáre RFC2279.

    V systéme Windows NT alebo Windows 2000, môžete použiť funkcie Win32 MultiByteToWideChar a WideCharToMultiByte konvertovať UTF-8 z UCS-2 a zadan?m konštantný CP_UTF8 (65001) ako prvý parameter funkcií.
  3. Upraviť uplatňovanie UCS-2 namiesto používať kódovanie UTF-8.
  4. Na server pomocou stĺpcov BINÁRNE, VARBINÁRNE a obrázok uložiť skutočné údaje UTF-8. Ukladanie údajov UTF-8 na serveri SQL znamená, že môžete používať SQL Server nie zoradiť alebo nájsť rozsahy týchto hodnôt, ako keby sa údaje boli platné znakových údajov. Typy operácií na stĺpce obsahujúce údaje UTF-8, ktoré by nevráti očakávané výsledky zahŕňajú "objednávku", väčší-ako ">" a menej-ako "<" comparisons,="" and="" the="" built-in="" sql="" server="" string="" manipulation="" functions="" such="" as=""></">

    Rovnosť porovnania, však bude fungovať tak dlho, ako reťazce v porovnaní sú rovnocenné úrovni bajt. Všimnite si, že ak budete ukladať údaje UTF-8 v SQL Server by ste nemali používať stĺpce character (CHAR, NCHAR a VARCHAR a podobne). UTF-8 nie je platný znak údajov na server SQL Server, a ukladanie-znakový údajov v znakových stĺpcoch riskujete, že čelia problémom, ako otázky diskutované v nasledujúcich článkoch databázy Microsoft Knowledge Base:
    155723 INF: SQL Server skracovania reťazca DBCS
    234748 PRB: Ovládača ODBC SQL Server konvertuje jazyk udalosti Unicode
    Ak uvažujete táto voľba, majte na pamäti, že ak ste niekedy potrebovali na prístup k údajom UTF-8 uložené vo vnútri SQL Server z ľubovoľnej aplikácie iné ako webového prehľadávača (napríklad z založená webová aplikácia ODBC) budete musieť urobiť konverziu z UTF-8 UCS-2 v rámci tejto aplikácie ako ODBC, OLEDB, COM, rozhranie API systému Win32 hovorov, VB a c runtime reťazec manipulácia funkcie nebudú pracovať s údajmi UTF-8. Dôkazné bremeno, preklad sa presunie na inú aplikáciu.
  5. Ak vaše požiadavky nezahŕňajú potrebu uloženia údajov z kombináciu z jazykov, ktoré nemožno uspokojiť jednotného kódovou stránkou, nie musíte používať kódovanie Unicode.
Podpora Unicode bol zavedený na server SQL Server, počnúc SQL Server 7.0. Pretože SQL Server 6.5 nepodporuje ukladanie údaje s kódovaním Unicode, len možnosti pre SQL Server 6.5 sú načrtnuté v kroky 4 a 5.

Vlastnosti

ID článku: 232580 - Posledná kontrola: 23. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Kľúčové slová: 
kbinfo kbmt KB232580 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:232580

Odošlite odozvu

 

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