Sdílet prostřednictvím


Podpora vícebajtových znakových sad (MBCS)

Vícebajtové znakové sady (MBCS) jsou alternativou k Unicode pro podporu znakových sad, jako jsou například japonské písmo a čínština, které nelze reprezentovat v jediném bajtu.Pokud programujete pro mezinárodní trh, zvažte použití Unicode nebo vícebajtových znakových sad (MBCS) nebo povolit programu, aby mohl sestavit aplikaci oběma způsoby změnou přepínače.

Nejběžnější implementací vícebajtové znakové sady je dvoubajtové znakové sady (DBCS).Obecný Visual C++ a zejména knihovna MFC je plně povolena pro DBCS.

Ukázky najdete ve zdrojových souborech knihovny MFC.

Pro platformy, použité na trzích, jejichž jazyky používají velké znakové sady, je znakové sada MBCS nejlepší alternativou k Unicode.Knihovna MFC podporuje znakovou sadu MBCS pomocí internationalizace datových typů a běhových funkcí jazyka C.Můžete prvést totéž ve Vašem kódu.

Ve znakové sadě MBCS jsou znaky kódovány buď v 1 nebo ve 2 bajtech.U dvoubajtových znaků signalizuje první nebo úvodní bajt to, že tento a také následující bajt mají být interpretovány jako jeden znak.První byte pochází z rozsahu kódů, vyhrazených pro použití jako úvodní bajt.Který rozsah bajtů může být úvodní bajt, závisí na používané znakové stránce.Například japonské písmo znakové stránky 932 používá rozsah 0x81 až 0x9F jako úvodní bajt, ale korejské písmo znakové stránky 949 používá jiný rozsah.

Zvažte vše následující ve Vašem programování znakové sady MBCS.

  • Znaky znakové sady MBCS v prostředí
    Znaky znakové sada MBCS se mohou objevit v řetězcích, jako jsou například názvy souborů a adresářů.

  • Operace úprav
    Editace úprav v aplikacích znakové sady MBCS by měla pracovat na znacích a ne na bajtech.Znak stříšky "^" by neměl rozdělit znak, klávesou ŠIPKA DOPRAVA by se mělo přesunout o jeden znak doprava a tak dále.Delete by mělo odstranit znak; Vrácení zpět by ho mělo znovu vložit.

  • Zpracování řetězce
    V aplikaci, která používá znakovou sadu MBCS, představuje zpracování řetězce zvláštní problémy.Znaky obou šířek se spolu vyskytují v jednom řetězci; proto nesmíte zapomenout ověřit přítomnost úvodních bajtů.

  • Podpora běhové knihovny
    Běhová knihovna jazyka C a knihovna MFC podporují jednobajtové, MBCS a Unicode programování.Jednobajtové řetězce jsou zpracovávány pomocí str řady běhových funkcí, řetězce znakové sady MBCS jsou zpracovávány pomocí odpovídajících funkcí _mbs a řetězce Unicode jsou zpracovávány pomocí odpovídajících funkcí wcs.Implementace členských funkcí třídy knihovny MFC používá přenosné běhové funkce, které mapují pod pravými okolnostmi na normální řady funkcí str, funkce znakové sady MBCS nebo funkce Unicode, jak je popsáno v "přenositelnost znaková sada MBCS/Unicode."

  • Přenositelnost znaková sada MBCS/Unicode
    Použitím souboru hlaviček Tchar.h můžete provést sestavení jednobajtových aplikací, aplikací znakové sady MBCS a Unicode aplikací ze stejného zdroje.Tchar.h definuje makra s _tcs , které podle potřeby mapují do funkcí str, _mbs nebo wcs.Chcete-li sestavit znakovou sadu MBCS, definujte symbol _MBCS.Chcete-li sestavit Unicode, definujte symbol _UNICODE.Ve výchozím nastavení je definováno _MBCS u aplikací knihovny MFC.Další informace naleznete v tématu Mapování obecného textu v Tchar.h.

[!POZNÁMKA]

Je nedefinováno chování, pokud definujete naráz symboly _UNICODE a _MBCS.

Soubory hlaviček Mbctype.h a Mbstring.h definují specifické funkce a makra znakové sady MBCS, které můžete v některých případech potřebovat.Například _ismbblead Vám oznamuje, jestli je konkrétní bajt v řetězci úvodním bajtem.

Pro mezinárodní přenositelnost kódujte Váš program s Unicode nebo vícebajtovými znakovými sadami (MBCS).

Co chcete udělat?

Viz také

Koncepty

Text a řetězce v jazyce C++

Podpora znakové sady MBCS ve Visual C++