Samenvatting

Bepaalde toepassingen (vooral die op het Web) moeten omgaan met Unicode-gegevens die is gecodeerd met de coderingsmethode UTF-8. SQL Server 7.0 en SQL Server 2000 gebruikt u een andere coderingsstandaard Unicode (UCS-2) en UTF-8 niet herkennen als geldige tekengegevens. Dit artikel bevat enkele opties voor het omgaan met deze situatie.

Meer informatie

Unicode-gegevens kan op veel verschillende manieren worden gecodeerd. UCS-2 en UTF-8 zijn twee algemene manier om op te slaan bits patronen die Unicode-tekens te vertegenwoordigen. Microsoft Windows NT, SQL Server, Java, COM, en de SQL Server ODBC-stuurprogramma en OLEDB-provider alle weergeven intern Unicode-gegevens UCS-2.

De opties voor het gebruik van SQL Server 7.0 of SQL Server 2000 als een back endserver voor een toepassing die u verzendt en ontvangt gegevens Unicode is gecodeerd als UTF-8 zijn:

  1. Als uw toepassing gebruikmaakt van Active Server Pages (ASP) en het gebruik van Internet Information Server (IIS) 5.0 en Microsoft Windows 2000, kunt u '< % Session.Codepage=65001% >' toevoegen aan uw ASP-script op server. Dit geeft de opdracht IIS alle dynamisch gegenereerde tekenreeksen omzetten (voorbeeld: Response.Write) van UCS-2 tot en met UTF-8 automatisch voordat ze naar de client verzonden.

    Als u niet inschakelen, sessies wilt, kunt u ook de richtlijn aan de serverzijde gebruiken "< % @ CodePage 65001% = >".

    UTF-8 van de client naar de server via de GET of POST verzonden gegevens ook UCS-2 automatisch omgerekend. De eigenschap Session.Codepage is de aanbevolen methode voor het verwerken van gegevens binnen een webtoepassing UTF-8. Deze Codepage instelling is niet beschikbaar in IIS 4.0 en Windows NT 4.0. Zie voor meer informatie het volgende artikel in de Microsoft Knowledge Base:

    254313 -foutbericht: fout van Active Server Pages ' ASP 0203' Ongeldige Code

  2. Vertalen naar en van UCS-2- of UTF-8 indien nodig binnen de toepassing. Voorbeeldcode voor dit type conversie bevindt zich op de website van het Unicode Consortium:

    ftp://ftp.unicode.org/Public/PROGRAMS/CVTUTF/In het document in Internet Request For Comments RFC2279 vindt u een beschrijving van het algoritme UCS-2 omgezet in UTF-8.

    Op Windows NT of Windows 2000 met de functies van de Win32 MultiByteToWideChar en WideCharToMultiByte kunt u converteren van UTF-8 en UCS-2 door de constante CP_UTF8 (65001) als de eerste parameter naar de functies.

  3. Wijzig de toepassing UCS-2 in plaats van UTF-8-codering gebruiken.

  4. De werkelijke UTF-8-gegevens opslaan op de server met behulp van de BINARY/VARBINARY/IMAGE-kolommen. UTF-8-gegevens opslaan in SQL Server houdt die u niet SQL Server gebruiken kunt om te sorteren of het bereiken van deze waarden zoeken, alsof de gegevens geldig tekengegevens. Welke bewerkingen op kolommen met UTF-8-gegevens die u niet de verwachte resultaten levert opnemen 'ORDER BY', groter-dan ">" en kleiner-dan "<" vergelijkingen en de ingebouwde SQL Server string manipulatie functies zoals SUBSTRING().

    Gelijkheid vergelijkingen, werken echter zo lang de reeksen die worden vergeleken op een byte niveau gelijkwaardig zijn. Houd er rekening mee dat als u UTF-8-gegevens opslaan in SQL Server u niet character-kolommen (CHAR/NCHAR/VARCHAR enzovoort gebruiken moet). UTF-8 is geen geldig tekengegevens naar SQL Server en door niet-alfanumerieke gegevens opgeslagen in character-kolommen die loopt u het risico zich voordoen tijdens de problemen opgelost die in de volgende Microsoft Knowledge Base-artikelen beschreven problemen:

    155723 , INF: SQL Server PST-bestanden van een DBCS-tekenreeks

    234748 PRB: SQL Server ODBC-stuurprogramma taal gebeurtenissen geconverteerd naar Unicode
    Als u deze optie overweegt, houd er rekening mee dat als u ooit toegang moet UTF-8-gegevens in SQL Server opgeslagen vanuit een willekeurige toepassing dan een webbrowser (bijvoorbeeld van een Web gebaseerde ODBC-toepassing) u moet voor de conversie van een UTF-8 UCS-2 in deze toepassing als ODBC-, OLEDB, COM, Win32 API-aanroepen, VB, en C runtime string manipulatie functies werken niet met UTF-8-gegevens. Hiermee wordt de belasting van de vertaling verplaatst naar een andere toepassing.

  5. Als uw vereisten nodig voor het opslaan van gegevens uit een combinatie van talen die niet kan worden voldaan door één codetabel niet opneemt, moet u mogelijk niet gebruikmaken van Unicode.

Unicode-ondersteuning werd voor SQL Server met SQL Server 7.0 geïntroduceerd. Aangezien de opslag van Unicode-gegevens biedt geen ondersteuning voor SQL Server 6.5, worden alleen de opties voor SQL Server 6.5 worden beschreven in stap 4 en 5.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?

Bedankt voor uw feedback.

×