Freigeben über


Unterstützung für Unicode

Aktualisiert: November 2007

Bei Unicode handelt es sich um eine Spezifikation zur Unterstützung sämtlicher Zeichensätze, einschließlich Zeichensätzen, zu deren Darstellung mehr als ein Byte erforderlich ist. Bei der Programmierung für den internationalen Markt sollten Sie die Verwendung von Unicode- oder Mehrbyte-Zeichensätzen (MBCS) in Betracht ziehen bzw. das Programm so gestalten, dass Sie mithilfe eines Schalters nach Bedarf eine Unicode- oder eine MBCS-Version erstellen können.

Bei einem Breitzeichen handelt es sich um einen mehrsprachigen Zeichencode mit zwei Bytes. Der Großteil der Zeichen, die weltweit in der modernen Computertechnik verwendet werden, einschließlich technischer Symbole und Sonderzeichen für Publikationen, können entsprechend der Unicode-Spezifikation als Breitzeichen dargestellt werden. Zeichen, für deren Darstellung ein Breitzeichen nicht ausreichend ist, können mithilfe des Ersatzfeatures von Unicode als Unicode-Paar dargestellt werden. Da die einzelnen Breitzeichen stets in einer festen Größe von 16 Bits dargestellt werden, wird die Programmierung mit internationalen Zeichensätzen durch die Verwendung von Breitzeichen vereinfacht.

Eine Zeichenfolge mit Breitzeichen wird als wchar_t[]-Array dargestellt. Der Verweis auf diese Zeichenfolge erfolgt über einen wchar_t*-Zeiger. Jedes ASCII-Zeichen kann als Breitzeichen dargestellt werden, indem dem jeweiligen Zeichen der Buchstabe L vorangestellt wird. L'\0' ist z. B. das abschließende NULL-Breitzeichen (16 Bit). Ebenso kann jedes beliebige ASCII-Zeichenfolgenliteral als Breitzeichen-Zeichenfolgenliteral dargestellt werden, indem dem ASCII-Literal der Buchstabe L vorangestellt wird (L"Hello").

Breitzeichen belegen grundsätzlich mehr Speicherplatz als Mehrbytezeichen, können jedoch schneller verarbeitet werden. Darüber hinaus kann bei Mehrbytecodierung nur jeweils ein Gebietsschema dargestellt werden; Unicode ermöglicht dagegen die gleichzeitige Darstellung sämtlicher internationaler Zeichensätze.

Das MFC-Framework ist mit Ausnahme der Datenbankklassen vollständig Unicode-aktiviert. (ODBC ist nicht Unicode-aktiviert.) Die Unicode-Aktivierung wird in MFC durch die Verwendung portabler Makros erreicht, wie in der folgenden Tabelle dargestellt:

Portable Datentypen in MFC

Nicht-portable Datentypen

Werden ersetzt durch dieses Makro

char

_TCHAR

char*, LPSTR (Win32-Datentyp)

LPTSTR

const char*, LPCSTR (Win32-Datentyp)

LPCTSTR

Die CString-Klasse verwendet _TCHAR als Basis und stellt Konstruktoren und Operatoren für problemlose Konvertierungen bereit. Die meisten Zeichenfolgenvorgänge für Unicode können unter Verwendung derselben Logik geschrieben werden, mit der auch der ANSI-Zeichensatz von Windows behandelt wird. Die einzige Ausnahme besteht darin, dass es sich bei der Basiseinheit für Vorgänge um ein 16-Bit-Zeichen handelt, nicht um ein 8-Bit-Zeichen. Anders als bei der Arbeit mit Mehrbyte-Zeichensätzen (MBCS) müssen (und sollten) Sie Unicode-Zeichen nicht wie zwei verschiedene Bytes behandeln.

Was möchten Sie tun?

Siehe auch

Konzepte

Zeichensätze in C++

Unterstützung für die Verwendung von wmain