Obsługa standardu Unicode

Unicode jest specyfikacją do obsługi wszystkich zestawów znaków, łącznie z zestawów znaków, których nie można przedstawić w jednobajtowych.Programowaniu na międzynarodowym rynku należy rozważyć korzystanie z Unicode albo lub zestawów znaków wielobajtowych, (MBCSs) lub włączenie funkcji programu, można je tworzyć go dla albo zmieniając przełącznika.

Szeroki znak jest kod 2 znaków wielojęzycznych.Można przedstawić większość znaków używanych w nowoczesnych computing na całym świecie, włączając technicznych symbole i znaki specjalne publikowania, zgodnie ze specyfikacją Unicode jako szerokich znaków.Znaki, których nie można przedstawić w 1 szerokich znaków można przedstawić w parze Unicode z funkcją Surogat na Unicode.Ponieważ każdy znak szeroki zawsze jest reprezentowany w stały rozmiar 16 bitów, używając znaków szerokości upraszcza programowania z zestawami znaków międzynarodowych.

Łańcuch szerokich znaków jest reprezentowane jako [wchar_t] array i jest wskazywana przez wchar_t* wskaźnik.Dowolny znak ASCII może być reprezentowana jako szerokich znaków, dodając litera l do znaku.Na przykład, L '\0' jest szeroki kończące (16-bitowy) NULL znaków.Podobnie literału ciągu ASCII może być reprezentowana jako łańcuch szerokich znaków literalnych, dodając litera l do literału ASCII (L "Hello").

Ogólnie szerokości znaków podjąć więcej miejsca w pamięci niż znaki wielobajtowe, ale są szybsze do procesu.Ponadto tylko jeden ustawień regionalnych może być reprezentowana w czasie w kodowaniu wielobajtowych, wszystkich znaków ustala się na całym świecie są przedstawiane równocześnie reprezentację Unicode.

Ramy MFC jest standard Unicode całej, z wyjątkiem dla klas bazy danych.(ODBC nie obsługuje standard Unicode.) MFC programowa, Unicode, umożliwiając przy użyciu makr przenośne całej, jak pokazano w poniższej tabeli.

Przenośne typy danych w MFC

Typ danych przenośne

Zastępuje to makro

char

_TCHAR

CHAR *, LPSTR (typ danych Win32)

LPTSTR

const char *, LPCSTR (typ danych Win32)

LPCTSTR

Klasa CString używa _TCHAR jako jej podstawy i zapewnia łatwy konwersje konstruktory i operatorów.Większość operacji ciąg znaków standardu Unicode można zapisać przy użyciu tej samej logiki, używany do obsługi zestawu znaków ANSI systemu Windows, z wyjątkiem, że podstawową jednostką operacji jest znak 16-bitowe zamiast bajt 8-bitowych.W przeciwieństwie do pracy z zestawami znaków wielobajtowych (MBCSs), nie ma (i nie powinien) Traktuj znaku Unicode, jak gdyby dwa różne bajty.

Co chcesz zrobić?

Zobacz też

Koncepcje

Tekstem i ciągami znaków w języku Visual C++

Obsługa wmain