編碼指不同國家的語言在計算機中的壹種存儲和解釋規範?
ANSI與ASCII
n最初,Internet上只有壹種字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美國信息交換標準碼),它使用7 bits來表示壹個字符,總***表示128個字符,後來IBM公司在此基礎上進行了擴展,用8bit來表示壹個字符,總***可以表示256個字符,充分利用了壹個字節所能表達的最大信息?
nANSI字符集:ASCII字符集,以及由此派生並兼容的字符集,如:GB2312,正式的名稱為MBCS(Multi-Byte Chactacter System,多字節字符系統),通常也稱為ANSI字符集。
壹.定義部分:
ANSI:char str[1024];可用字符串處理函數:
strcpy(), ?strcat(), strlen()等等。
UNICODE:wchar_t str[1024];可用字符串處理函數
二.可用函數:
ANSI:即char,可用字符串處理函數:
strcat( ?),strcpy( ?), ?strlen( ?)等以str打頭的函數。
UNICODE:即wchar_t可用字符串處理函數:wcscat(),wcscpy(),wcslen() 等以wcs打頭的函數。
三.系統支持
Windows ?98 ?:只支持ANSI。
Windows ?2k ?:既支持ANSI又支持UNICODE。
Windows CE ?:只支持UNICODE。
說明
1在COM裏面只支持UNICODE。
2.Windows 2000整個OS系統都是基於UNICODE的,為此在windows2000 下使用ANSI是需要付出代價的,雖然在編碼上不用任何的轉換,但是這種轉化 是隱藏的,是占用系統資源的(CPU,內存)。
3在Windows98下必須使用UNICODE,則需要自己手動的編碼切換。
四.如何區分:
在我們軟件開發中往往需要即支持ANSI又支持UNICODE,不可能在要求類 型轉換的時候,重新改變字符串的類型,和使用於字符串上的操作函數。為此,標 準C運行期庫和Windows提供了宏定義的方式。
在C語言裏面提供了_UNICODE宏(有下劃線),在Windows裏面提供了 UNICODE宏(無下劃線),只要定了_UNICODE宏和UNICODE宏,系統就會自動切 換到UNICODE版本,否則,系統按照ANSI的方式進行編譯和運行。
只定義了宏並不能實現自動的轉換,他還需要壹系列的字符定義支持。