而在VS中的项目属性中,你只能看到多字节字符集MBCS和Unicode。
实际上,通过查询MSDN后发现,实际上,MBCS属于一种统称,而对应的具体字符集则是DBCS。而MBCS现在也就DBCS一种。所以,你可以将DBCS和MBCS视为同一种字符集,当然,如果什么时候弄出第二种多字节字符集的话,那么就不能将双字节字符集和多字节字符集视为一个概念咯。
下面是微软MSDN的VS2015版的官方中文解释,直接贴出来参考,就不重复了,参考地址:https://msdn.microsoft.com/zh-cn/library/5z097dxa.aspx所以,如果使用的是多字节字符集环境下写代码,最麻烦的问题就是统计字符的问题了。因为字符串中,中文等字符使用的是两个字节来表示的,而英文字符则是一个字节表示的,这样就是一个字节和两个字节混合的。所以,你不能简单的计算字节数来统计字符数了。
在多字节字符集字符串中,你需要先分析第一个字节,判断这个字符是由一个字节表示的还是两个字符表示的。
如果你对统计中文字符,可以参考《如何判断字符串中是否含有中文字符》,这篇文章是简单的判断字符编码大于127来认为是中文。实际上并不严格。如果要严格判断,则通过代码页来确定,即判定第一个字节的值,来确定字符属于什么文字。
微软MSDN标准的代码页列表地址:https://msdn.microsoft.com/zh-cn/library/aa288104
具体如何通过代码页来判断字符串中的文字,留给你来研究咯。
因为之前对DBCS和MBCS有所误解,所以,再学习的时候,发现这个误区,所以特地总结出来。