Beschreibung des Speichers von UTF-8-SQL Server-Daten| Artikel-ID | : | 232580 | | Geändert am | : | Mittwoch, 7. Dezember 2005 | | Version | : | 4.2 |
Zusammenfassung
Einige Anwendungen (besonders das die Web darstellt, das basiert) müssen Unicodedaten verarbeiten, das mit der UTF-8-Codierungsmethode verschlüsselt wird. SQL Server 7.0 und SQL Server 2000 verwenden eine andere Unicodecodierung (UCS-2) und erkennen UTF-8 nicht als gültige Zeichendaten. Dieser Artikel beschreibt einige Optionen für die Arbeit mit dieser Situation.
Weitere Informationen
Unicodedaten können auf vielen verschiedenen Arten codiert werden. UCS-2 und UTF-8 sind zwei Bitmuster speichernde, die Unicodezeichen darstellen allgemeine Möglichkeiten. Alle Microsoft Windows NT, SQL Server, Java, COM, SQL Server-ODBC-Treiber und OLE DB-Provider stellen Unicodedaten intern als UCS-2 dar.
Die Optionen, SQL Server 7.0 oder SQL Server 2000 für eine Anwendung als Backenserver zu verwenden, die Unicodedaten sendet, das als UTF-8 verschlüsselt wird, und empfängt, das als UTF-8 verschlüsselt wird, schließen ein:
| 1. | Wenn Ihre Anwendung ASP verwendet und wenn Sie 2000 mit Internet Information Server 5.0 und Microsoft Windows arbeiten, können Sie "< Leistung-session.codepage=65001-% >" Ihrem serverseitigen ASP-Skript hinzufügen. Das weist an II, alle dynamisch generierte Zeichenfolgen zu konvertieren ( Beispiel: Response.Write ) von UCS-2 auf UTF-8 automatisch dem Senden von ihnen bevor an den Client.
Wenn Sie Sitzungen aktivieren möchten nicht kann Sie alternativ verwenden die serverseitige Anweisung " < % @ CodePage 65001 % = > ".
Automatisch wird alle UTF-8-Daten, von dem Client an den Server via GET oder POST gesandt wird, außerdem zu UCS-2 konvertiert. Die Session.Codepage-Eigenschaft ist die UTF-8-Daten in einer Webanwendung verarbeitende empfohlene Methode. Diese Einstellung von Codepage ist für IIS 4.0 und Windows NT 4.0 nicht verfügbar. In dem folgenden Artikel der Microsoft Knowledge Base finden Sie Weitere Informationen:
254313 (http://support.microsoft.com/kb/254313/EN-US/) Fehlermeldung: ungültiger "ASP 0203" Active Server Pages-Fehlercode
| | 2. | Übersetzen zu und von UCS-2 oder von UTF-8 Sie gegebenenfalls in der Anwendung. Beispielcode für diese Art der Konvertierung befindet sich in der Site des Unicode-Konsortiums:
Nach einer allgemeinen Beschreibung des Algorithmus kann in dem Dokument RFC2279 Internet Request For Comments gesucht werden, um UCS-2 auf UTF-8 umzuwandeln.
Zu UCS-UCS-Konvertierung von UTF-8 zu 2 und von 2, indem Sie das konstante CP_UTF8 übergeben, können Sie als den ersten Parameter für die Funktionen die Win32-Funktionen MultiByteToWideChar und WideCharToMultiByte unter Windows NT oder Windows 2000 (65001) verwenden.
| | 3. | Sie Ändern in der Anwendung für Verwendung von UCS-2 statt Codierung von UTF-8. | | 4. | Speichern Sie die tatsächlichen UTF-8-Daten auf dem Server unter Verwendung der Spalten von BINARY/VARBINARY/IMAGE. Der Speicher von UTF-8-Daten auf SQL Server bedeutet, dass Sie SQL Server zu dem Sortieren oder dem Finden dieser Wertbereiche, als ob die Daten gültige Zeichendaten enthielten, nicht verwenden können. Arten: von Operationen - auf Spalten, die UTF-8-Daten enthalten, die nicht zurückgeben werden, dass erwartete Ergebnisse größeres "BY" enthalten " > "- abzüglich" < " Vergleiche und die integrierten SQL Server-Zeichenfolge-Bearbeitungsfunktionen wie SUBSTRING().
Gleichheitsvergleiche werden jedoch funktionieren, solange die Zeichenfolgen, die verglichen werden, auf einer Byteebene äquivalent sind. Beachten Sie, dass Sie Zeichenspalten (CHAR/NCHAR/VARCHAR und usw.) nicht verwenden sollten, wenn Sie UTF-8-SQL Server-Daten speichern. UTF-8 enthält nicht gültige Zeichendaten zu SQL Server und von non-character Daten in Zeichenspalten Sie von riskieren, auf Problemen wie den Problemen zu stoßen, in den folgenden Artikeln der Microsoft Knowledge Base Spalten beschrieben werden, speichern:
155723 (http://support.microsoft.com/kb/155723/EN-US/) INF: SQL Server-Kürzung einer DBCS-Zeichenfolge
234748 (http://support.microsoft.com/kb/234748/EN-US/) PRB: SQL Server-ODBC-Treiber konvertiert Sprachenereignisse zu Unicode
Beachten Sie, dass Sie eine Konvertierung von UTF-8 zu UCS-2 in dieser Anwendung wie ODBC, OLEDB, COM Win32-API-Aufrufen VB, einem Webbrowser (beispielsweise aus einer ODBC-Anwendung von Nicht-Windows-basieren) durchführen werden müssen, und C-Laufzeit-Zeichenfolge-Bearbeitungsfunktionen nicht mit UTF-8-Daten arbeiten, wenn Sie jemals auf UTF-8-Daten zugreifen müssen, die anders als in SQL Server von jeder Anwendung gespeichert werden, wenn Sie diese Option berücksichtigen. Das verschiebt den Aufwand der Übersetzung in einer verschiedenen Anwendung.
| | 5. | Berücksichtigen Ihre Anforderungen die Anforderung nicht, Daten aus einer Kombination aus Sprachen, die von einer einzelnen Codepage nicht erfüllt werden können, zu speichern, müssen Sie Unicode möglicherweise nicht verwenden. |
Unterstützung von Unicode wurde zu SQL Server eingeführt, das mit SQL Server 7.0 startet. In Schritt 4 und Schritt 5 werden die einzigen Optionen für SQL Server 6.5 erläutert, da SQL Server 6.5 den Speicher von Unicodedaten nicht unterstützt.
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 |
Zum Anfang
| kbinfo KB232580 KbMtde kbmt |
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 (http://support.microsoft.com/kb/232580/en-us/) Zum Anfang
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.
| Other Support Options- Need More Help?
Contact a Support professional by Email, Online or Phone. - Customer Service
For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more. - Newsgroups
Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.
|
|