关于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> 

相关文章
相关标签/搜索