Unicode Desteği
Unicode tek bir baytta temsil edilemeyen karakter kümeleri dahil olmak üzere tüm karakter kümelerini destekleyen bir belirtimdir. Uluslararası pazar için programlama yapıyorsanız Unicode ve çok baytlı karakter kümeleri (MBCSs)'nden birini kullanmayı veya ikisinin arasında anahtar kullanarak geçiş yapmak için programınızı etkinleştirmeyi düşünün.
Geniş karakter, 2 baytlık çok dilli bir karakter kodudur. Dünyada modern bilgi işlemde kullanılan teknik simgeler ve özel yayıncılık karakterleri dahil çoğu karakter, Unicode belirtimine göre geniş karakter olarak gösterilebilir. 1 geniş karakter olarak temsil edilemeyen karakterler Unicode yedek özelliğine sahip Unicode çifti ile temsil edilir. Her bir geniş karakter her zaman 16 bitlik sabit bir boyutta temsil edildiği için, geniş karakterler uluslararası karakter kümeleriyle programlamayı basitleştirir.
Geniş karakter dizesi, bir wchar_t [ dizisi olarak temsil edilir ve bir wchar_t* işaretçisi tarafından gösterilir. Herhangi bir ASCII karakteri, başına L harfi eklenerek geniş bir karakter olarak gösterilebilir. Örneğin, L'\0' sonlandıran geniş (16 bit) BOŞ karakterdir. Benzer şekilde, herhangi bir ASCII dize sabit değeri, ASCII sabit değerinin önüne L harfi yerleştirilerek (L"Hello") geniş karakterli dize sabit değeri olarak temsil edilebilir.
Genellikle, geniş karakterler bellekte çok baytlı karakterlerden daha çok alanı kaplar, ancak daha hızlı işlenirler. Ayrıca, çok baytlı kodlamada yalnızca bir yerel temsil edilir, oysa dünyadaki tüm karakter kümeleri aynı anda Unicode gösterimi tarafından temsil edilir.
MFC çerçevesi veritabanı sınıfları dışında her yerde Unicode etkindir. (ODBC, Unicode etkin değildir.) MFC aşağıdaki tabloda gösterilen taşınabilir makroları kullanarak Unicode etkinleştirmesini gerçekleştirir.
MFC'deki Taşınabilir Veri Türleri
Taşınamaz veri türü |
Bu makro tarafından değiştirildi |
---|---|
char |
_TCHAR |
char*, LPSTR (Win32 veri türü) |
LPTSTR |
const char*, LPCSTR (Win32 veri türü) |
LPCTSTR |
CString sınıfı taban olarak _TCHAR kullanır ve kolay dönüştürmeler için yapılandırıcılar ve işleçler sağlar. Çoğu Unicode dize işlemi, Windows ANSI karakter kümesini ele alırken kullanılan mantığın aynısı kullanılarak yazılabilir, ancak temel işlem birimi 8 bit bayt değil 16 bit karakterdir. Çok baytlı karakter kümesi (MBCSs) ile çalışmaktan farklı olarak, bir Unicode karakterine iki farklı baytmış gibi davranmanız gerekmez (ve gerekmemelidir).
Ne yapmak istiyorsunuz?
Programıma geniş karakterli bağımsız değişkenler geçirmem için wmain kullanın.
Bayt genişliği taşınabilirliği için genel metin eşlemeleri hakkında bilgi alma