Alex21 Zagreb
Član broj: 89590 Poruke: 24 82.193.194.*
|
Unicode je u pravilu bolji od Multy-Byte ekodiranja, pogotovo kad je riječ o lokalizacijama softwera.
Osnovna razlika između njih je u enkodiranju znakova.
Multi-byte koristi code page shemu. Znak može biti 1 ili 2 byta dužine, gdje se kod 2 byte, gornji koristi za definiranje specijalnog raspona znakova ovisno o odabranoj kodnoj stranici. Unicode pak koristi 2 bytnu reprezentaciju znakova čime se pokriva čitav raspon svih znakova (kineski , japanski ...)
Princip kodnih stranica se koristio na Win95/98/98Me, dok se na Win NT, Win2000, WinXP i nadalje koristi Unicode shema, dakle još jedan razlog zašto koristiti Unicode. Naime, ukoliko je aplikacija buildana na Multi-byte shemi, a vrti se na Unicode OS-u, unosiš overhead jer operativni sustav mora interno raditi konverzije tipova.
Pošto spominješ CString zaključujem da je riječ o MFC-u.
MFC pruža podršku za Unicode (_UNICODE switch) i Multi-byte (_MBCS switch) u odvojenim bibliotekema.
Sam CString podržava oba, jer se bazira na TCHAR tipu, pa kod _UNICODE buildanja TCHAR se mapira u 16-bitni wchar_t, dok se kod _MBCS buildanja mapira u obični char.
Ono što treba pripaziti je da prilagodiš sve tipove. char u wchar_t,... zatim, sve one stare dobre CRT funkcije ako ih koristiš
(atoi, strcmp, fprintf,...) se mijenjaju u svoju unicode braću (_wtoi, wcscmp, fwprintf,...).
Uz to moraš koristiti makroe _T() i _L():
npr.
CStringObj.Insert(0, "Bla bla");
prelazi u CStringObj.Insert(0, _T("Bal bla"));
Uglavnom, za detalje pročešljaj MSDN i sve bude jasno.
Pozdrav
|