码迷,mamicode.com
首页 > Windows程序 > 详细

windows核心编程(字符编码)

时间:2014-06-25 12:42:17      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:code   strong   数据   os         

一、字符编码

字符集

1)字符集是字符的数字代码集。有ANSI/ASCII、MBCS(Multibytes)、Unicode等。比如“汉”字Unicode代码为0x6c49。

编码方案

2)编码方案是记录字符代码的方式。有UTF-8、UTF-16、GB2312等。编码方案分“变长编码”与“定长编码”两种。UTF-8是变长编码(汉字有的两字节有的三字节),而UTF-16是两字节定长的编码。

字符集与编码方案

3)字符集与编码方案是配套的。如GB2312编码,即是GB2312字符集与GB2312编码方案。此处GB2312为两字节定长编码。而提到的Unicode编码,即指Unicode字符集与UTF-X编码方案。其中UTF-16为两字节定长编码,UTF-8设计为变长是为了应用中兼容已有的ANSI/ASCII编码,并广泛应用于互联网业务。

Multibytes与Unicode

1)vc下,或者win32中,两者之别等价于变长与定长编码之分,或者说是采用非UTF-16还是UTF-16之分。

2)从winNT内核以来,win OS已全面更新为UTF-16编码。

3)此处Unicode仅指Unicode字符集配UTF-16编码。其余,UTF-8、UTF-7、GB2312、ANSI/ASCII等一律划归Multibytes。故而Multibytes应理解为“变长”字符,而非“多”字符。

 VS工程应用

 工程属性设置字符集为Multibytes或Unicode。这是用来切换winapi版本的,是用Ansi或Unicode版本。

二、ANSI字符和UNICODE字符与字符串数据类型

1)在C中char类型表示一个8位ANSI字符。

如下表示:

char c = ‘A‘;//即在内存中占用一个字节的空间

2)wchar_t表示一个16位的Unicode(UTF-16)字符。

wchar_t c = L‘A‘;//在内存中占用两个字节的空间

 

 

 

 

 

windows核心编程(字符编码),布布扣,bubuko.com

windows核心编程(字符编码)

标签:code   strong   数据   os         

原文地址:http://www.cnblogs.com/wangkl/p/3806941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!