Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Unicode az összes karakterkészlet támogatásának specifikációja, beleértve azokat is, amelyeket nem lehet egyetlen bájtban ábrázolni. Ha nemzetközi piacra programzik, javasoljuk, hogy Unicode vagy többbájtos karakterkészletet (MBCS) használjon. Vagy írd meg a programot úgy, hogy egy kapcsoló módosításával különböző verziókat készíthess.
A széles karakter egy két bájtos többnyelvű karakterkód. Több tízezer karakter, amely szinte minden, a modern számítástechnikában világszerte használt karakterből áll, beleértve a technikai szimbólumokat és a speciális közzétételi karaktereket is, a Unicode-specifikáció szerint egyetlen széles karakterként, UTF-16 használatával kódolva. Azok a karakterek, amelyeket nem lehet egyetlen széles karakterben ábrázolni, Unicode-párban is megjeleníthetők a Unicode helyettesítő pár funkcióval. Mivel az UTF-16-ban szinte minden közös használatú karakter egyetlen 16 bites karakterben jelenik meg, a széles karakterek használata leegyszerűsíti a nemzetközi karakterkészletekkel való programozást. Az UTF-16LE használatával kódolt széles karakterek (kis endian) a Windows natív karakterformátumai.
A széles karakterlánc tömbként wchar_t[] jelenik meg, és egy mutató mutat wchar_t* rá. Bármely ASCII-karakter széles karakterként ábrázolható az L betű előtaggal a karakterhez. Az L'\0' például egy végző széles (16-bites) NULL karakter. Hasonlóképpen bármely ASCII-sztringkonstans ábrázolható széles karakterláncként az L betű előtag hozzáadásával az ASCII-literálhoz (L"Hello").
A széles karakterek általában több helyet foglalnak el a memóriában, mint a többbájtos karakterek, de gyorsabbak a feldolgozásuk. Emellett egyszerre csak egy területi beállítás jelölhető többbájtos kódolásban, míg a világ összes karakterkészletét egyidejűleg a Unicode-ábrázolás képviseli.
Az MFC-keretrendszer teljes egészében Unicode-kompatibilis, az MFC pedig hordozható makrók használatával teszi lehetővé a Unicode engedélyezését, ahogyan az az alábbi táblázatban látható.
Hordozható adattípusok az MFC-ben
| Nem hordozható adattípus | Ezt a makrót lecserélte |
|---|---|
char, wchar_t |
_TCHAR |
char*, LPSTR (Win32 adattípus), LPWSTR |
LPTSTR |
const char*, LPCSTR (Win32 adattípus), LPCWSTR |
LPCTSTR |
Az osztály CString alapként használja _TCHAR , és konstruktorokat és operátorokat biztosít az egyszerű átalakításokhoz. A Unicode legtöbb sztringművelete ugyanazzal a logikával írható, amelyet a Windows ANSI-karakterkészlet kezelésére használnak, azzal a kivétellel, hogy az alapművelet egy 8 bites bájt helyett egy 16 bites karakter. A többbájtos karakterkészletekkel ellentétben nem kell (és nem is kell) úgy kezelnie egy Unicode-karaktert, mintha két különálló bájt lenne. Önnek azonban foglalkoznia kell azzal a lehetőséggel, hogy egyetlen karaktert képviseljen egy helyettesítő, széles karakterpár. Általában ne írjon olyan kódot, amely feltételezi, hogy egy sztring hossza megegyezik a benne található karakterek számával , legyen szó keskeny vagy széles karakterekről.
Mit kíván tenni?
Wmain használata, hogy széles karakterű argumentumokat továbbíthassak a programomnak
Ismerje meg a bájtszélesség-hordozhatóság általános szöveg-leképezéseit