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ć?
Użyj wmain, więc do programu można przekazać argumenty szerokich znaków
Więcej informacji na temat mapowania tekst rodzajowy szerokość bajt przenośności