關於VS2015 字符集採用Unicode時出現的問題

使用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> 

相關文章
相關標籤/搜索