Kétbájtos karakterkészletek
A kétbájtos karakterkészlet (DBCS), más néven "bővített 8 bites karakterkészlet" egy kiterjesztett egybájtos karakterkészlet (SBCS), amely kódlapként van implementálva. A DBCS-eket eredetileg úgy fejlesztették ki, hogy kibővítse az SBCS-kialakítást olyan nyelvek kezelésére, mint a japán és a kínai. A DBCS egyes karakterei, beleértve az angol íráshoz használt számjegyeket és betűket, egy bájtos kódértékekkel rendelkeznek. Más karakterek, például a kínai ideográfok vagy a japán kanji kétbájtos kódértékekkel rendelkeznek. A DBCS egy Windows-kódlapnak vagy egy OEM-kódlapnak is megfelelhet. A DBCS-kódlapok tartalmazhatnak nem natív kódlapot is, például egy EBCDIC kódlapot. A kódlapok definícióit a Kódlapokcímű témakörben talál.
Jegyzet
Az új Windows-alkalmazásoknak Unicode kell használniuk a változatos kódlapok inkonzisztenciája és a honosítás megkönnyítése érdekében. Előfordulhat azonban, hogy egyes örökölt protokollokhoz DBCS-kódlapokra van szükség. Minden DBCS-kódlap különböző karaktereket támogat, de egyetlen oldal sem támogatja a Unicode által biztosított karakterek teljes szélességét. Minden DBCS-kódlap más-más kódolású részhalmazt támogat. Az egyik DBCS-kódlapról egy másikra konvertált adatok sérülést szenvednek, mert a különböző kódlapokon lévő adatértékek más karaktert kódolhatnak. A Unicode-ból DBCS-re konvertált adatok adatvesztésnek lehetnek kitéve, mivel előfordulhat, hogy egy adott kódlap nem tudja az adott Unicode-adatokban használt összes karaktert ábrázolni.
A DBCS-sztring értelmezéséhez az alkalmazásnak a sztring elején kell kezdődnie, és előre kell vizsgálnia. Nyomon követi, ha a sztringben egy érdeklődő bájttal találkozik, és a következő bájtot ugyanannak a karakternek a záró részeként kezeli. Ha az alkalmazás egyszerre csak egy bájttal megvizsgálja a sztringet, és egy fordított perjelet (\) képviselő kódértéknek tűnő bájttal találkozik, akkor ez a bájt egyszerűen egy két bájtos karakter nyomvonal-bájtja lehet. Az alkalmazás nem tud csak egy bájtról biztonsági másolatot készíteni annak megtekintéséhez, hogy az előző bájt egy érdeklődő bájt-e, mivel ez a bájtérték alkalmas lehet arra, hogy érdeklődő bájtként és nyomvonal-bájtként is használható legyen. Így az alkalmazás lényegében ugyanazzal a problémával rendelkezik, mint a lehetséges fordított perjellel. Más szóval a részszűrési keresések sokkal bonyolultabbak a DBCS-ekkel, mint az SBCS-ekkel vagy a Unicode-tal. Ennek megfelelően a DBCS-t támogató alkalmazásoknak speciális függvényeket, például _mbsstrkell használniuk a StrStr függvény helyett.
Az alkalmazások a Windows-függvények "A" verzióival rendelkező DBCS Windows-kódlapokat használnak. Lásd: függvény prototípusainak és kódlapokra vonatkozó konvenciók. A DBCS-kódlap azonosításához az alkalmazás használhatja a GetCPInfo vagy GetCPInfoEx függvényt. Az alkalmazások az IsDBCSLeadByte függvénnyel állapíthatják meg, hogy egy adott érték használható-e egy 2 bájtos karakter ólombájtjaként. Emellett az alkalmazások a MultiByteToWideChar és WideCharToMultiByte függvényeket is használhatják Unicode és DBCS sztringek közötti leképezéshez.
Kapcsolódó témakörök