Sdílet prostřednictvím


Dvoubatové znakové sady

Dvoubabajtů znakové sady (DBCS), označované také jako "rozšířená 8bitová znaková sada", je rozšířená jednobabajtů znakové sady (SBCS) implementovaná jako znaková stránka. DbCS byly původně vyvinuty tak, aby rozšířily návrh SBCS pro zpracování jazyků, jako jsou japonština a čínština. Některé znaky v dbCS, včetně číslic a písmen používaných pro psaní angličtiny, mají jednobajtů kódové hodnoty. Jiné znaky, například čínské ideografie nebo japonské kanji, mají dvojité bajtové hodnoty kódu. Služba DBCS může odpovídat znakové stránce Systému Windows nebo znakové stránce OEM. Znaková stránka služby DBCS může obsahovat také ne nativní znakovou stránku, například znakovou stránku EBCDIC. Definice těchto znakových stránek najdete v tématu kódové stránky.

Poznámka

Nové aplikace pro Windows by měly používat Unicode, aby nedocházelo k nekonzistence různých znakových stránek a pro snadnou lokalizaci. Některé starší protokoly ale můžou vyžadovat použití znakových stránek DBCS. Každá znaková stránka DBCS podporuje různé znaky, ale žádná stránka nepodporuje celou šířku znaků, které poskytuje Unicode. Každá znaková stránka DBCS podporuje jinou podmnožinu, jinak kódovanou. Data převedená z jedné znakové stránky DBCS na jinou podléhají poškození, protože stejná datová hodnota na různých znakových stránkách může kódovat jiný znak. Data převedená z unicode na znakovou sadu DBCS podléhají ztrátě dat, protože daná znaková stránka nemusí představovat každý znak použitý v datech unicode.

 

Pokud chcete interpretovat řetězec služby DBCS, musí aplikace začínat na začátku řetězce a prohledávat dál. Sleduje, kdy v řetězci narazí na hlavní bajt a považuje další bajt za koncovou část stejného znaku. Pokud aplikace jednoduše prohledá řetězec po jednom bajtu a narazí na bajt, který vypadá jako hodnota kódu představující zpětné lomítko (\), může být tento bajt jednoduše koncový bajt dvoubajtů znaku. Aplikace nemůže pouze zálohovat jeden bajt a zjistit, jestli předchozí bajt představuje bajt potenciálního bajtu, protože tato hodnota bajtu může být způsobilá k použití jako bajt hlavního bajtu i bajtu stopy. Aplikace tedy má v podstatě stejný problém jako s možným zpětným lomítkem. Jinými slovy, hledání podřetědců je mnohem složitější u dbCS než u SBCS nebo Unicode. Aplikace, které podporují službu DBCS, proto musí místo funkce StrStr používat speciální funkce, například _mbsstr.

Vaše aplikace používají znakové stránky DBCS systému Windows s verzemi "A" funkcí systému Windows. Viz konvence pro prototypy funkcí a znakové stránky. K identifikaci znakové stránky DBCS může aplikace použít funkci GetCPInfo nebo GetCPInfoEx. Aplikace může použít funkci IsDBCSLeadByte k určení, jestli se daná hodnota může použít jako hlavní bajt 2bajtového znaku. Kromě toho může aplikace používat MultiByteToWideChar a WideCharToMultiByte funkce k mapování mezi řetězci Unicode a DBCS.

znakové sady

jednobajtů znakové sady