C++多字节与Unicode之间的转化
Unicode Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 char数据类型 C程序中使用char数据类型来定义和存储字符和字符串 下面的声明定义和初始化一个包含单一字符的变量: char c = 'A' ; 定义一个指向字符串的指针: char * p ; 因为Windows是一个32位的操作系统,指针变量p需要4个字节的存储空间。还可以如下初始化一个指向字符串的指针: char * p = "Hello!" ; 更宽的字符 使用Unicode或者是宽字符并不会改变C语言中的字符数据类型。char类型继续代表一个字节的存储空间,而且sizeof(char)继续返回1.理论上来说,C语言中的一个字节可能长于8位,但是对于大多数人来说,一个字节(因而就是一个char)是8位宽。 C语言中的宽字符是基于wchar_t数据类型的。这个数据类型被定义在多个头文件中,包括WCHAR.H,如下所示: typedef unsingned short wchar_t ; 因此,wchar_t数据类型和一个无符号短整型一样,都是16位宽。 可以用下面的语句来定义一个包含单个宽字符的变量