Podpora vícebajtových znakových sad (MBCS)
Vícebajtové znakové sady (MBCS) jsou starším přístupem k potřebě podporovat znakové sady, které nelze reprezentovat jediným bajtem, například japonštinu a čínštinu.Při novém vývoji by měla být pro všechny textové řetězce použita sada Unicode, snad kromě systémových řetězců, které koncový uživatel neuvidí.Sada MBCS je starou technologií a pro nový vývoj se nedoporučuje.
Nejběžnější implementací vícebajtové znakové sady je dvoubajtová znaková sada (DBCS).Obecný Visual C++ a zejména knihovna MFC je plně povolena pro DBCS.
![]() |
---|
V aplikaci Visual Studio 2013 a novějších budou knihovny MFC pro vícebajtové kódování znaků (MBCS) poskytovány jako doplněk aplikace Visual Studio a budou zákazníkům sady Visual Studio (pouze edice Pro, Premium a Ultimate) zdarma dostupné na webu MSDN pro stahování softwaru. Knihovny vyžadují přibližně 440 MB místa na disku, instalace zahrnuje všechny lokalizované verze knihoven.Lze ji nainstalovat na libovolný počítač, na němž je nainstalována sada Visual Studio edice Pro, Premium nebo Ultimate a na němž je povolena vnitřní funkce MFC Pokud sadu Visual Studio odinstalujete nebo opravíte, knihovny MBCS budou také odinstalovány nebo opraveny.Odstraníte-li však pouze funkci MFC, knihovny MBCS v systému zůstanou.Opravíte-li knihovny MBCS, nebude sada Visual Studio nijak upravena. Redistribuovatelné balíčky pro sadu Visual Studio 2013 a novější budou nadále obsahovat také knihovny MBCS MFC DLL.Pro distribuci knihoven DLL zákazníkům nejsou zapotřebí žádné další kroky. |
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í internacionalizace datových typů a běhových funkcí jazyka C.Můžete prové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 program pomocí sady Unicode nebo vícebajtových znakových sad (MBCS).
Co chcete udělat?
Použití znakové sady MBCS k vytvoření mezinárodního programu
Informace o mapování obecných textů pro přenositelnost šířky bajtu