MFC學習筆記01 T 與L的區別

2021-08-07 02:28:12 字數 935 閱讀 8504

1,編碼方式

ascii編碼:用來表示英文,它使用1個位元組表示,其中第一位規定為0,其他7位儲存資料,一共可以表示128個字元。(占用乙個位元組,即乙個位元組表示乙個字元

gbk/gb2312/gb18030:表示漢字。gb2312表示簡體中文,gbk 是 gb2312的擴充套件 ,除了相容gb2312外,它還能顯示正體中文,還有日文的假名,gb18030表示中文,相容gbk和gb2312。(占用兩個位元組,即兩個位元組表示乙個字元

unicode編碼:包含世界上所有的字元,是乙個字符集。(占用兩個位元組,即兩個位元組表示乙個字元

utf-8:是unicode字元的實現方式之一,它使用1-4個字元表示乙個符號,根據不同的符號而變化位元組長度。

注:c++支援兩種字串,即常規的ansi編碼(使用」「包裹)和unicode編碼(使用l」「包裹)

2,mfc中(l字串)表示unicode字串

cstring s=l"unicode";
_t(「」)是乙個巨集,定義於tchar.h下。

#define __t(x) l ## x

#define _t(x) __t(x)

cstring s=_t("unicode");

//cstring s="unicode";//error

//cstring需要接受tchar型別的引數

//當沒有定義_unicode巨集時,tchar = char

//當定義了_unicode巨集時,tchar = wchar_t

_t和l的區別在於,l不管你是以什麼方式編譯,一律以unicode方式儲存。

MFC中L和 T 的區別

1,編碼方式 ascii編碼 用來表示英文,它使用1個位元組表示,其中第一位規定為0,其他7位儲存資料,一共可以表示128個字元。占用乙個位元組,即乙個位元組表示乙個字元 gbk gb2312 gb18030 表示漢字。gb2312表示簡體中文,gbk 是 gb2312的擴充套件 除了相容gb231...

C 中 T()與L的區別

字串前面加l表示該字串是unicode字串。t是乙個巨集,如果專案使用了unicode字符集 定義了unicode巨集 則自動在字串前面加上l,否則字串不變。因此,visual c 裡邊定義字串的時候,用 t來保證相容性。vc支援ascii和unicode兩種字元型別,用 t可以保證從ascii編碼...

C 中L與 T 的區別

字串前面加l表示該字串是unicode字串。t是乙個巨集,如果專案使用了unicode字符集 定義了unicode巨集 則自動在字串前面加上l,否則字串不變。因此,visual c 裡邊定義字串的時候,用 t來保證相容性。vc支援ascii和unicode兩種字元型別,用 t可以保證從ascii編碼...