Ukládání dat UTF-8 na serveru SQL Server popis

Překlady článku Překlady článku
ID článku: 232580 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Některé aplikace (zejména těch, které jsou webové) musí čelit data ve formátu Unicode, který je zakódován pomocí metody kódování UTF-8. SQL Server 7.0 a SQL Server 2000 pomocí různých kódování Unicode (UCS-2) a nerozpoznají jako platné znaky UTF-8. Tento článek popisuje některé možnosti pro řešení této situace.

Další informace

Data ve formátu Unicode, mohou být kódovány mnoha různými způsoby. Jsou dva běžné způsoby ukládání bit vzorky, které představují znaky Unicode (UCS-2 a UTF-8). Systém Microsoft Windows NT, SQL Server, Java, COM a ovladač SQL Server ODBC a OLEDB provider všechny interně představují data v kódování Unicode jako UCS-2.

Možnosti použití serveru SQL Server 7.0 nebo SQL Server 2000 jako server serverové části aplikace, která vysílá a přijímá data ve formátu Unicode, který je kódovaný jako UTF-8:
  1. Pokud aplikace používá stránky ASP (Active Server Pages) a používáte Internet Information Server (IIS) 5.0 a Microsoft Windows 2000, můžete přidat do skriptu ASP na straně serveru "< % Session.Codepage=65001 % >. Tento pokyn IIS převést všechny dynamicky generovaných řetězce (Příklad: Response.Write) z UCS-2, UTF-8 automaticky před odesláním klientovi.

    Pokud nechcete povolit relace, můžete také použít směrnice straně serveru "< % @ CodePage = 65001 % >".

    Data odesílaná z klienta na server prostřednictvím GET nebo POST UTF-8 také automaticky převeden na UCS-2. Vlastnost Session.Codepage je doporučená metoda zpracovávat data v kódování UTF-8 v rámci webové aplikace. Toto nastavení znaková stránka není k dispozici na serveru IIS 4.0 a Windows NT 4.0. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
    254313 Chybová zpráva: Active Server chybové stránky "ASP 0203" neplatný kód
  2. Přeložte z UCS-2 nebo UTF-8 a podle potřeby v rámci aplikace. Ukázkový kód pro tento typ převodu, který je umístěn na serveru Unicode Consortium:

    FTP://FTP.Unicode.org/Public/PROGRAMS/CVTUTF/
    V dokumentu Internet požádat pro komentáře RFC2279 najdete podrobný popis algoritmu převést UCS-2, UTF-8.

    V systému Windows NT nebo Windows 2000 můžete použít funkce Win32 MultiByteToWideChar a Funkce WideCharToMultiByte převod kódování UTF-8 z UCS-2 a předáním konstantní CP_UTF8 (65001) jako první parametr funkce.
  3. Změňte aplikaci použít UCS-2 místo kódování UTF-8.
  4. Skutečná data UTF-8 ukládat na server pomocí sloupců binární, VARBINARY nebo OBRÁZEK. Ukládání dat UTF-8 na serveru SQL Server se rozumí můžete používat SQL Server k řazení nebo najít oblastí těchto hodnot, jako by data byla neplatná znaková data. Typy operací na sloupce obsahující data UTF-8, která nevrací očekávané výsledky zahrnují "Order", vyšší-než ">" a méně-než "<" comparisons,="" and="" the="" built-in="" sql="" server="" string="" manipulation="" functions="" such="" as=""></">

    Porovnání rovnosti, však budou fungovat jako jsou porovnávané řetězce jsou rovnocenné úrovni bajt. Všimněte si, že pokud UTF-8, data jsou uložena v SQL serveru byste neměli používat sloupce znak (CHAR, NCHAR nebo VARCHAR a tak dále). UTF-8 není platný znak dat serveru SQL Server a ukládáním dat bez znaků znakových sloupců, riskujete, že docházelo k problémům, jako jsou například problémy popsané v následujícím článku znalostní báze Microsoft Knowledge Base:
    155723 Soubor INF: SQL Server zkrácení řetězce DBCS
    234748 PRB: Ovladač SQL Server ODBC Driver převede události jazyka kódování Unicode
    Pokud uvažujete o tuto možnost, mějte na mysli, je-li potřebovat přístup k datům UTF-8 uložené uvnitř SQL Server z libovolné aplikace, jiný než webový prohlížeč (například z non webových aplikací ODBC) bude nutné provést převod z formátu UTF-8 na UCS-2 v rámci této aplikace jako ODBCOLEDB, COM, volání rozhraní Win32 API, jazyka Visual Basic a c runtime řetězec manipulace funkce pracovat s daty UTF-8. Zátěž překlad se přesune do jiné aplikace.
  5. Pokud vaše požadavky neobsahují potřebu ukládat data z kombinace jazyků, které nelze vyhovět, jediné kódové stránky, není potřeba používat kódování Unicode.
K serveru SQL Server se serverem SQL Server 7.0 počínaje byla zavedena podpora kódování Unicode. Protože SQL Server verze 6.5 nepodporuje ukládání dat ve formátu Unicode, pouze možnosti pro SQL Server 6.5 jsou uvedeny v kroku 4 a 5.

Vlastnosti

ID článku: 232580 - Poslední aktualizace: 26. dubna 2011 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbinfo kbmt KB232580 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:232580

Dejte nám zpětnou vazbu

 

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