Çift Baytlı Karakter Kümeleri
"Genişletilmiş 8 bit karakter kümesi" olarak da bilinen çift baytlı karakter kümesi (DBCS), kod sayfası olarak uygulanan (SBCS) genişletilmiş tek baytlık karakter kümesidir. DBCS'ler başlangıçta SBCS tasarımını Japonca ve Çince gibi dilleri işleyecek şekilde genişletmek için geliştirilmiştir. İngilizce yazmak için kullanılan basamaklar ve harfler de dahil olmak üzere DBCS'deki bazı karakterlerin tek bayt kod değerleri vardır. Çince ideograflar veya Japonca kanji gibi diğer karakterler çift bayt kod değerlerine sahiptir. DBCS bir Windows kod sayfasına veya OEM kod sayfasına karşılık gelebilir. DBCS kod sayfası, yerel olmayan bir kod sayfası da (örneğin, EBCDIC kod sayfası) içerebilir. Bu kod sayfalarının tanımları için bkz. Kod Sayfaları.
Not
Yeni Windows uygulamaları, çeşitli kod sayfalarının tutarsızlıklarını önlemek ve yerelleştirme kolaylığı sağlamak için Unicode kullanmalıdır. Ancak bazı eski protokoller DBCS kod sayfalarının kullanılmasını gerektirebilir. Her DBCS kod sayfası farklı karakterleri destekler, ancak hiçbir sayfa Unicode tarafından sağlanan karakterlerin tamamını desteklemez. Her DBCS kod sayfası farklı kodlanmış farklı bir alt kümeyi destekler. Bir DBCS kod sayfasından diğerine dönüştürülen veriler bozulmaya tabidir çünkü farklı kod sayfalarında aynı veri değeri farklı bir karakteri kodlayabilir. Unicode'dan DBCS'ye dönüştürülen veriler veri kaybına tabidir, çünkü belirli bir kod sayfası söz konusu Unicode verilerinde kullanılan her karakteri temsil edemeyebilir.
DbCS dizesini yorumlamak için bir uygulamanın dizenin başında başlaması ve ileri doğru tarama yapması gerekir. Dizede bir kurşun bayt ile karşılaştığında izler ve sonraki bayta aynı karakterin sondaki parçası olarak davranır. Uygulama dizeyi tek seferde bir bayt tarar ve ters eğik çizgiyi ("\") temsil eden kod değeri gibi görünen bir baytla karşılaşırsa, bu bayt yalnızca iki baytlık bir karakterin sondaki baytı olabilir. Uygulama, önceki bayt değerinin bir müşteri adayı bayt olup olmadığını görmek için yalnızca bir bayt yedekleyemez. Bu bayt değeri hem müşteri adayı bayt hem de iz bayt olarak kullanılmaya uygun olabilir. Bu nedenle uygulamanın temel olarak olası ters eğik çizgi ile aynı sorunu vardır. Başka bir deyişle, alt dize aramaları DBCS ile SBCS veya Unicode'dan çok daha karmaşıktır. Buna göre, DBCS'yi destekleyen uygulamalar StrStr işlevi yerine _mbsstrgibi özel işlevler kullanmalıdır.
Uygulamalarınız, Windows işlevlerinin "A" sürümleriyle DBCS Windows kod sayfalarını kullanır. Bkz. İşlev Prototipleri ve Kod Sayfalarıiçin Kuralları. Bir uygulama, DBCS kod sayfasını tanımlamaya yardımcı olmak için GetCPInfoveya GetCPInfoExişlevinikullanabilir. Bir uygulama, belirli bir değerin 2 baytlık bir karakterin baş baytı olarak kullanılıp kullanılamayabileceğini belirlemek için IsDBCSLeadByteişlevini kullanabilir. Ayrıca uygulama, Unicode ve DBCS dizeleri arasında eşlemek için MultiByteToWideCharve WideCharToMultiByteişlevlerinikullanabilir.
İlgili konular