记录下对VS中编码问题的一些理解
vs中编码格式
1.vs中默认的编码格式为utf8格式(具体可通过高级保存选项进行更改),宽字符为utf16(一些项目中可能采用的是GBK格式的编码,而大部分的网络库等用的是utf8格式的编码,此时需要对字符串进行转换);
2.gbk格式和utf8是多字节编码,格式编码与ascii码兼容;utf16是宽字符编码,不与ascii兼容;
3.gbk与utf8的转换都是需要先转成utf16再转成对应格式
vs中字符集
vs中字符集可选为UNICODE字符集与多字节字符集,两种选择的区别如下(暂时只知道这么多):
1.UNICODE下自动定义_UNICODE宏,导致默认的调用函数与多字节不同,例如可能会扩展成宽字符版本的函数
2.CString的默认字符不同,UNICODE下为宽字符,转换成char需要通过字符转换函数进行转换;多字节下可直接转换为char