Freigeben über


Double-Byte-Zeichensätze

Ein Doppelbyte-Zeichensatz (Double-Byte Character Set, DBCS), auch als "erweiterter 8-Bit-Zeichensatz" bezeichnet, ist ein erweiterter Single-Byte-Zeichensatz (SBCS), der als Codepage implementiert wird. DBCSs wurden ursprünglich entwickelt, um das SBCS-Design auf Sprachen wie Japanisch und Chinesisch zu erweitern. Einige Zeichen in einem DBCS, einschließlich der Ziffern und Buchstaben, die zum Schreiben von Englisch verwendet werden, weisen Einzelbytecodewerte auf. Andere Zeichen, z. B. chinesische Ideographen oder japanische Kanji, weisen Doppelbytecodewerte auf. Ein DBCS kann entweder einer Windows-Codeseite oder einer OEM-Codeseite entsprechen. Eine DBCS-Codeseite kann auch eine nicht systemeigene Codeseite enthalten, z. B. eine EBCDIC-Codeseite. Definitionen dieser Codeseiten finden Sie unter Code pages.

Anmerkung

Neue Windows-Anwendungen sollten Unicode- verwenden, um die Inkonsistenzen unterschiedlicher Codeseiten zu vermeiden und die Lokalisierung zu vereinfachen. Einige ältere Protokolle erfordern jedoch möglicherweise die Verwendung von DBCS-Codeseiten. Jede DBCS-Codeseite unterstützt unterschiedliche Zeichen, aber keine Seite unterstützt die gesamte Breite von Zeichen, die von Unicode bereitgestellt werden. Jede DBCS-Codeseite unterstützt eine andere Teilmenge, anders codiert. Daten, die von einer DBCS-Codeseite in eine andere konvertiert werden, unterliegen Beschädigungen, da derselbe Datenwert auf verschiedenen Codeseiten ein anderes Zeichen codieren kann. Daten, die von Unicode in DBCS konvertiert werden, unterliegen Datenverlust, da eine bestimmte Codeseite möglicherweise nicht jedes Zeichen darstellen kann, das in diesen bestimmten Unicode-Daten verwendet wird.

 

Um eine DBCS-Zeichenfolge zu interpretieren, muss eine Anwendung am Anfang der Zeichenfolge beginnen und vorwärts scannen. Er verfolgt, wenn es auf ein Leadbyte in der Zeichenfolge trifft, und behandelt das nächste Byte als nachgestellten Teil desselben Zeichens. Wenn die Anwendung einfach die Zeichenfolge ein Byte gleichzeitig durchsucht und auf ein Byte trifft, das anscheinend der Codewert ist, der einen umgekehrten Schrägstrich ("\") darstellt, ist dieses Byte möglicherweise einfach das Byte eines Byte-Zeichens mit zwei Byte. Die Anwendung kann nicht nur ein Byte sichern, um festzustellen, ob das vorangehende Byte ein Leadbyte ist, da dieser Bytewert möglicherweise sowohl als Leadbyte als auch als Trail-Byte verwendet werden kann. Daher hat die Anwendung im Wesentlichen das gleiche Problem wie mit dem möglichen umgekehrten Schrägstrich. Mit anderen Worten, Teilzeichenfolgensuchen sind viel komplizierter mit einem DBCS als mit SBCSs oder Unicode. Dementsprechend müssen Anwendungen, die ein DBCS unterstützen, spezielle Funktionen wie _mbsstranstelle der StrStr--Funktion verwenden.

Ihre Anwendungen verwenden DBCS Windows-Codeseiten mit den "A"-Versionen von Windows-Funktionen. Siehe Konventionen für Funktionsprototypen und Codeseiten. Um eine DBCS-Codeseite zu identifizieren, kann eine Anwendung die GetCPInfo- oder GetCPInfoEx--Funktion verwenden. Eine Anwendung kann die IsDBCSLeadByte--Funktion verwenden, um zu bestimmen, ob ein bestimmter Wert als Leadbytebyte-Byte-Zeichen verwendet werden kann. Darüber hinaus kann eine Anwendung die MultiByteToWideChar- und WideCharToMultiByte- Funktionen verwenden, um unicode- und DBCS-Zeichenfolgen zuzuordnen.

Zeichensätze

Einzelbyte-Zeichensätze