使用unicode字符集編碼的時候老是會提示,這裏不對,那裏也不對,因爲嫌麻煩,就直接把字符集改爲寬字符集。編碼
可是感受,這樣永遠也沒法理解unicode的字符集的使用。spa
UNICODE:它是用兩個字節表示一個字符的方法。好比字符'A'在ASCII下面是一個字符,可'A'在UNICODE下面是兩個字符,高字符用0填充,並且漢字'程'在ASCII下面是兩個字節,而在UNICODE下仍舊是兩個字節
。UNICODE的用處就是定長表示世界文字,據統計,用兩個字節能夠編碼現存的全部文字而沒有二義。
MBCS,它是多字節字符集,它是不定長表示世界文字的編碼。MBCS表示英文字母時就和ASCII同樣(這也是咱們容易把MBCS和ASCII搞混的緣由),但表示其餘文字時就須要用多字節。 指針
那我們也來初窺一下unicode字符集裏的錯誤解決方案:code
一、LPTSTR unicode
L ---Long字符串
P ---Pointerit
T --- 宏,用於指示是否使用unicode字符集方法
C ------表示常量統計
STR-----表示字符串英文
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意義:
LPSTR:32bit指針 指向一個字符串,每一個字符佔1字節
LPCSTR:32-bit指針 指向一個常字符串,每一個字符佔1字節
LPCTSTR:32-bit指針 指向一個常字符串,每字符可能佔1字節或2字節,取決於Unicode是否認義
LPTSTR:32-bit指針 每字符可能佔1字節或2字節,取決於Unicode是否認義
在中文系統環境下若是啓用了Unicode支持,LPTSTR表明的是WCHAR *
二、在啓用了Unicode字符集的時候,若是遇到參數不能從const char * 轉爲LPCWSTR的狀況下,
1)能夠更改字符集
2)字符串使用_T("")表示 char 換成TCHAR
3) 頭文件包含#include<tchar.h>