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編碼...