Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Multibyte-teckenuppsättningar (MBCS) är en äldre metod för behovet av att stödja teckenuppsättningar, till exempel japanska och kinesiska, som inte kan representeras i en enda byte. Om du utvecklar nytt bör du använda Unicode för alla textsträngar utom kanske systemsträngar som inte visas av slutanvändarna. MBCS är en äldre teknik och rekommenderas inte för ny utveckling.
Den vanligaste MBCS-implementeringen är teckenuppsättningar med dubbla byte (DBCS). Visual C++ i allmänhet, och MFC i synnerhet, är helt aktiverat för DBCS.
Exempel finns i MFC-källkodsfilerna.
För plattformar som används på marknader vars språk använder stora teckenuppsättningar är det bästa alternativet till Unicode MBCS. MFC stöder MBCS genom att använda internationaliserbara datatyper och C-runtimefunktioner. Du bör göra samma sak i koden.
Under MBCS kodas tecken i antingen 1 eller 2 byte. I två-byte tecken signalerar den första byten att både den och den följande byten ska tolkas som ett tecken. Den första byten kommer från ett intervall med koder som är reserverat för användning som inledande byte. Vilka intervall av byte som kan vara leadbyte beror på vilken kodsida som används. Till exempel använder den japanska kodsidan 932 intervallet 0x81 via 0x9F som leadbyte, men den koreanska kodsidan 949 använder ett annat intervall.
Överväg alla följande i MBCS-programmeringen.
MBCS-tecken i miljön MBCS-tecken kan visas i strängar som fil- och katalognamn.
Redigeringsåtgärder
Redigeringsåtgärder i MBCS-program bör fungera på tecken, inte byte. Careten ska inte dela upp ett tecken, högerpilen bör flytta åt höger ett tecken och så vidare. Ta bort bör ta bort ett tecken. Ångra bör återställa det.
Stränghantering
I ett program som använder MBCS innebär stränghantering särskilda problem. Tecken med båda bredderna blandas i en enda sträng; därför är det viktigt att komma ihåg att kontrollera för lead bytes.
Stöd för körningsbibliotek
C-körningsbiblioteket och MFC stöder enkel byte-, MBCS- och Unicode-programmering. Enbytessträngar bearbetas med str-familjen av körningsfunktioner, MBCS-strängar bearbetas med motsvarande _mbs-funktioner, och Unicode-strängar bearbetas med motsvarande wcs-funktioner. Implementeringar av medlemsfunktioner i MFC-klasser använder portabla körningsfunktioner som under rätt omständigheter mappar till den vanliga familjen av funktioner str, MBCS-funktionerna eller Unicode-funktionerna, enligt beskrivningen i "MBCS/Unicode-portabilitet".
MBCS/Unicode-portabilitet
Med hjälp av rubrikfilen tchar.h kan du skapa enbytes-, MBCS- och Unicode-applikationer från samma källor. Tchar.h definierar makron med prefixet _tcs, som mappar till str, _mbseller wcs funktioner efter behov. Om du vill skapa MBCS definierar du symbolen _MBCS. Om du vill skapa Unicode definierar du symbolen _UNICODE. Som standard _UNICODE definieras för MFC-program. Mer information finns iGeneric-Text Mappningar i tchar.h.
Anmärkning
Beteendet är odefinierat om du definierar både _UNICODE och _MBCS.
Huvudfilerna Mbctype.h och Mbstring.h definierar MBCS-specifika funktioner och makron, som du kan behöva i vissa fall. Anger till exempel _ismbblead om en specifik byte i en sträng är en leadbyte.
För internationell portabilitet kodar du programmet med Unicode - eller MBCS-teckenuppsättningar (multibyte).