Beschreibung der UTF-8-Daten in SQL Server speichern

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 232580 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Einige Anwendungen (insbesondere diejenigen, die webbasierte) müssen mit Unicode-Daten behandelt, die mit der UTF-8-Codierung-Methode codiert ist. SQL Server 7.0 und SQL Server 2000 verwenden Sie eine andere Unicode-Codierung (UCS-2) und nicht in der Lage erkennen UTF-8 als gültige Zeichendaten. Dieser Artikel beschreibt einige Optionen für den Umgang mit dieser Situation.

Weitere Informationen

Unicode-Daten können auf unterschiedliche Weise codiert werden. UCS-2 und UTF-8 gibt zwei gängige Methoden zum Speichern von Bitmuster, die Unicode-Zeichen darstellen. Microsoft Windows NT, SQL Server, Java, COM, und der SQL Server-ODBC-Treiber und OLE DB-Anbieter alle darstellen intern Unicode-Daten als UCS-2.

Die Optionen zur Verwendung von SQL Server 7.0 oder SQL Server 2000 als Back-End-Server für eine Anwendung, die sendet und empfängt, die als UTF-8 codiert Unicode-Daten umfassen:
  1. Wenn Ihre Anwendung (Active Server Pages) verwendet, und Sie sind Internet Information Server (IIS) 5.0 und Microsoft Windows 2000 verwenden, können Sie "< % Session.Codepage=65001 % >" serverseitigen ASP-Skript hinzufügen. Dies weist IIS, alle dynamisch generierte Zeichenfolgen zu konvertieren (Beispiel: Response.Write) von UCS-2 auf UTF-8 automatisch vor dem Senden an den Client.

    Wenn Sie Sitzungen aktivieren möchten, können Sie auch die serverseitige Direktive verwenden "< % @ CodePage 65001 % = >".

    Alle UTF-8-Daten vom Client über Get- oder POST an den Server gesendet werden sich auch automatisch in UCS-2 konvertiert. Die Session.Codepage-Eigenschaft ist die empfohlene Methode zum Behandeln von UTF-8-Daten innerhalb einer Webanwendung. Diese Codepage-Einstellung ist nicht auf IIS 4.0 und Windows NT 4.0 verfügbar. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    254313Fehlermeldung: Active Server Pages Fehler "ASP 0203" Ungültige Code
  2. Übersetzen Sie innerhalb der Anwendung entsprechend zu und von UCS-2 oder UTF-8. Beispielcode für diese Art von Konvertierung befindet sich auf das Unicode Consortium-Website:

    ftp://ftp.unicode.org/Public/PROGRAMS/CVTUTF/
    Eine allgemeine Beschreibung des Algorithmus zum Konvertieren von UCS-2 in UTF-8 kann in das Internet Request For Comments-Dokument RFC2279 gefunden werden.

    Sie können die Win32-Funktionen MultiByteToWideChar und WideCharToMultiByte verwenden, um UTF-8 in und aus UCS-2 zu konvertieren, durch Übergabe der Konstante CP_UTF8 unter Windows NT oder Windows 2000 (65001) als erster Parameter an Funktionen.
  3. Ändern Sie die Anwendung UCS-2 anstelle von UTF-8-Codierung verwenden.
  4. Speichern Sie die tatsächlichen UTF-8-Daten auf dem Server die BINARY, VARBINARY/IMAGE Spalten. UTF-8-Datenspeicherung auf dem SQL Server bedeutet, dass Sie SQL Server nicht, zum Sortieren oder diese Wertebereiche suchen verwenden können, als wären die Daten gültigen Zeichendaten. Die Arten von Operationen auf Spalten mit UTF-8 Daten, die nicht zurückgegeben würde, erwartete Ergebnisse enthalten die "ORDER BY", größer - als ">"und kleiner - als"<" Vergleiche und die integrierten SQL Server Funktionen zur Zeichenfolgenbearbeitung z. B. SUBSTRING().

    Allerdings wird Gleichheitsvergleiche, funktionieren, solange die verglichenen Zeichenfolgen auf einer Ebene Byte äquivalent sind. Beachten Sie, dass wenn Sie UTF-8-Daten in SQL Server speichern nicht Zeichenspalten (CHAR, NCHAR/VARCHAR und usw.) verwenden soll. UTF-8 ist keine gültige Zeichen Daten zu SQL Server und durch das Speichern nicht Zeichen Daten in Zeichenspalten Risiko werden Probleme wie die in der folgenden Microsoft Knowledge Base-Artikeln beschriebenen Probleme auftreten:
    155723INF: SQL Server abgeschnitten einer DBCS-Zeichenfolge
    234748PRB: ODBC-Treiber konvertiert Language-Ereignisse in Unicode
    Wenn Sie diese Option, bedenken Sie jedoch erwägen, wenn Sie aus einer beliebigen Anwendung außer einem Webbrowser (z. B. von einer nicht-Web-basierte ODBC-Anwendung) in SQL Server gespeicherte UTF-8-Daten zugreifen müssen dazu Sie werden eine Konvertierung von UTF-8 in UCS-2 innerhalb dieser Anwendung ODBC, OLEDB, COM müssen, Zeichenfolge Win32 API-Aufrufe, VB- und C-Laufzeit Manipulation Funktionen nicht mit UTF-8-Daten funktionieren. Dadurch wird die Belastung der Konvertierung in eine andere Anwendung verschoben.
  5. Wenn Ihre Anforderungen nicht einschließen müssen Daten aus einer Kombination von Sprachen speichern, die durch eine einzelne Codepage erfüllt werden können, müssen Sie Unicode verwenden.
Unicode-Unterstützung wurde auf SQL Server mit SQL Server 7.0 eingeführt. Da SQL Server 6.5 nicht unterstützt von Unicode-Daten speichern, werden nur die Optionen für SQL Server 6.5 in 4 Schritt und Schritt beschrieben 5.

Eigenschaften

Artikel-ID: 232580 - Geändert am: Mittwoch, 7. Dezember 2005 - Version: 4.4
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbmt kbinfo KB232580 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 232580
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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