1.ASCII是1 byte編碼,只能記錄256種字元而不夠多數的語言使用,須以高字符做為引導字元,進而形成多byte編碼,因此同一個ASCII字串在不同語系裡, 實際代表的字元未必相同,導致資料交換上的困擾。Unicode為一種4 byte編碼,全世界各語系的字元或符號,都賦予一個固定的編碼,所以無論到那裡,代表的字串都是唯一的。
2.WCHAR是Windows自行定義的資料形態,表示2 byte Unicode字元。
3.在Windows裡,為了同時適用於ASCII字串與Unicode字串的處理 (以是否有定義"UNICODE"做為區別),特別定義了TCHAR型態,在有定義UNICODE時視同WCHAR,否則便是char。同樣的,LPTSTR也會依照是否有定義UNICODE,來視同WCHAR*或char*。
4.實例:
ASCII字串的指定法:char *s ="test";
Unicode字串的指定法:WCHAR *s =L"test";
TCHAR* s = _T"test";在沒有定義UNICODE時,等同ASCII字串的指定法,若有定義UNICODE,則等同Unicode字串的指定法。


阿洲 發表在 痞客邦 留言(0) 人氣()