[转]vs2005 字符编码
1.在VC++ 6.0版本上,对字符集的预设是MBCS(Multi-Byte Character Set)。在VS 2005版本上,对字符集的预设是Unicode。
修改:项目菜单–项目属性(最后一个)–配置属性–常规–项目默认值–字符集,(Project-> Properties-> Configurations Properties-> General-> Project Defaults-> Charater Set)将使用Unicode字符集改为未设置即可。
2.字符编码基础
(1)Unicode
Unicode:一种所有的字符都使用两个字节编码的编码模式。 全世界所有语言的字符都用同一种字符集来表示,这就是Unicode。
标准:Unicode标准UCS-2使用两个字节表示一个字符;UCS-4标准,它使用4个字节表示一个字符。
字符表示集:UCS(Unicode Character Set)还仅仅是字符对应码位的一张表而已,比如"汉"这个字的码位是6C49。
传输储存:字符具体如何传输和储存则是由UTF(UCS Transformation Format)来负责。如果直接使用UCS的码位来保存,这就是UTF-16。但用着用着美国人觉得自己吃了大亏,以前英文字母只需要一个字节就能保存了,现在大锅饭一吃变成了两个字节,空间消耗大了一倍……于是UTF-8横空出世。UTF-8是一种很别扭的编码,具体表现在他是变长的,并且兼容ASCII,ASCII字符使用1字节表示。UTF-8里中文字符使用3个字节来保存吧?4个字节保存的字符更是在泪奔...
编码文件头标记符:在储存文件时,文件使用的编码并没有保存,打开时则需要我们记住原先保存时使用的编码并使用这个编码打开,这样一来就产生了许多麻烦。UTF则引入了BOM(Byte Order Mark)来表示自身编码。绝大多数编辑器在没有BOM时都是以UTF-8作为默认编码读取。
(2)单子节字符集(single-byte character set or SBCS)
在这种编码模式下,所有的字符都只用一个字节表示。ASCII是SBCS。
(3)多字节字符集(multi-byte character set or MBCS)
MBCS编码包含一些一个字节长的字符,而另一些字符大于一个字节的长度。用在Windows里的MBCS包含两种字符类型,单字节字符(single-byte characters)和双字节字符(double-byte characters)。由于Windows里使用的多字节字符绝大部分是两个字节长,所以MBCS常被用DBCS代替。

浙公网安备 33010602011771号