Freigeben über


Unicode- und des Multibyte-Zeichensatz-(MBCS) Unterstützung

Einige Sprachen beispielsweise Japanisch und Chinesisch, haben große Zeichensätze.Um Programmierung für diese Märkte zu unterstützen, wird die Microsoft Foundation Class-Bibliothek " (MFC-Bibliothek) für zwei verschiedene Ansätze zum Behandeln von umfangreichen Zeichensätzen aktiviert:

  • Unicode

  • Mehrbyte-Zeichensätze (MBCS)

MFC-Unterstützung für Unicode-Zeichenfolgen

Die gesamte Klassenbibliothek wird bedingt für Unicode-Zeichen und - aktiviert.Insbesondere wird Klasse CString Unicode-aktiviert.

UAFXCW.LIB

UAFXCW.PDB

UAFXCWD.LIB

UAFXCWD.PDB

MFC xx U.LIB

MFC xx U.PDB

MFC xx U.DLL

MFC xx UD.LIB

MFC xx UD.PDB

MFC xx UD.DLL

MFCSs xx U.LIB

MFCSs xx U.PDB

MFCSs xx UD.LIB

MFCSs xx UD.PDB

MFCM xx U.LIB

MFCM xx U.PDB

MFCM xx U.DLL

MFCM xx UD.LIB

MFCM xx UD.PDB

MFCM xx UD.DLL

(xx stellt die Versionsnummer der Datei dar; beispielsweise "80 " bedeutet Version 8.0.)

CString basiert auf dem TCHAR Datentyp.Wenn das Symbol _UNICODE für einen Build des Programms definiert ist, wird TCHAR als Typ wchar_t, ein 16-Bit-Zeichencodierungstyp definiert.Andernfalls wird TCHAR als char, die normale 8-Bit-Zeichencodierung definiert.Daher mit Unicode, wird CString von den 16-Bit-Zeichen zusammengesetzt.Ohne Unicode wird er von den Zeichen des Typs char zusammengesetzt.

So Unicode-Programmierung der Anwendung ausgeführt haben, müssen Sie auch:

  • Verwenden Sie das _T-Makro, um Zeichenfolgenliterale bedingt zu codieren, um zu Unicode übertragbar.

  • Wenn Sie Zeichenfolgen, Lohnaufmerksamkeit zu übergeben, ob Funktionsargumente eine Länge in Zeichen oder eine Länge in Bytes erfordern.Der Unterschied ist wichtig, wenn Sie Unicode-Zeichenfolgen verwenden.

  • Verwenden Sie portable Versionen der C-Laufzeit Funktionen zur Zeichenfolgenbehandlung.

  • Verwenden Sie die folgenden Datentypen für Zeichen und Zeichenzeiger:

    • TCHAR, wo Sie char verwenden würden.

    • LPTSTR, wo Sie char* verwenden würden.

    • LPCTSTR, wo Sie const char* verwenden würden.CString stellt den Operator LPCTSTR zum Konvertieren zwischen CString und LPCTSTR bereit.

CString stellt auch als Unicode-kompatible Konstruktoren, Zuweisungsoperatoren und Vergleichsoperatoren bereit.

Weitere Informationen über Unicode-Programmierung, finden Sie unter Unicode-Themen.der Laufzeitbibliotheksreferenz definiert portable Versionen aller seiner Funktionen zur Zeichenfolgenbehandlung.Siehe die Kategorie Internationalisierung.

MFC-Unterstützung für MBCS-Zeichenfolgen

Die Klassenbibliothek wird auch für Mehrbyte-Zeichensätze, jedoch nur für Doppelbyte-Zeichensätze (DBCS) aktiviert.

In einem Mehrbyte-Zeichensatz kann ein Zeichen oder zwei Bytes breit sein.Wenn zwei Bytes breit ist, ist die erste Byte ein spezielles "führendes Byte" das von einem bestimmten Bereich ausgewählt ist, je nach Codepage verwendet wird.Zusammen angewendet, geben die negativen und "die nachfolgenden Bytes" eine eindeutige Zeichencodierung an.

Wenn das Symbol _MBCS für einen Build des Programms, Typ TCHAR definiert wird, auf dem CString basiert, belegt char zu.Sie können dabei, zu bestimmen, welche Bytes in CString führende Bytes sind und welche nachfolgende Bytes sind.Die C-Laufzeitbibliotheks-Zubehörfunktionen, die Sie bei, dies zu bestimmen.

Die DBCS kann eine angegebene Zeichenfolge alle Einzelbyte- ANSI-Zeichen, alle Doppelbytezeichen oder einer Kombination der beiden enthalten.Diese Möglichkeiten erfordern besondere Sorgfalt in die Übertragung von Zeichenfolgen.Dies schließt CString-Objekte ein.

HinweisHinweis

Unicode-Zeichenfolgen-Serialisierung in MFC kann Unicode und MBCS-Zeichenfolgen lesen, unabhängig von der Version der Anwendung, die Sie ausführen.die Datendateien sind zwischen Unicode und MBCS-Versionen des Programms portiert werden.

spezielle Versionen "des generischen Text" der CString-Memberfunktionsverwendung der C-Laufzeitfunktionen, die sie aufrufen, oder sie verwenden als Unicode-kompatible Funktionen.Daher beispielsweise wenn eine CString-Funktion in der Regel strcmp aufrufen würde, ruft er die entsprechende Funktion _tcscmp des generischen Text stattdessen auf.Abhängig davon, wie die Symbole _MBCS und _UNICODE definiert werden, ordnet _tcscmp zu, wie folgt:

_MBCS definierte

_mbscmp

_UNICODE definierte

wcscmp

Außerdem nicht definierte Symbol

strcmp

HinweisHinweis

Die Symbole _MBCS und _UNICODE schließen sich gegenseitig aus.

Funktionszuordnungen für generischen Text für alle Ablauf-ZeichenfolgeBehandlung Routinen werden in C-Laufzeitbibliothek-Referenz erläutert.Insbesondere finden Sie unter Internationalisierung.

Ebenso werden CString-Methoden implementiert, indem "generische" Datentypzuordnungen verwendet.Um MBCS und Unicode zu aktivieren, verwendet MFC TCHAR für char, LPTSTR für char* und LPCTSTR für const char*.Diese stellen die richtigen Zuordnungen entweder für Unicode oder MBCS sicher.

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

Weitere Ressourcen

Zeichenfolgen (ATL/MFC)