日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【Windows程序设计】Unicode简介

發(fā)布時間:2025/3/13 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Windows程序设计】Unicode简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 字符的發(fā)展史

1、最初的字符集ASCII碼,128個字符。

2、擴展ASCII碼,共有256個字符。

3、雙字節(jié)字符集(DBCS:double-byte character set)。DBCS從256編碼開始,最初的128個代碼是ASCII,較高的128個代碼中的某些總是跟隨著第二個字節(jié)。這兩個字節(jié)一起(稱作首字節(jié)和跟隨字節(jié))定義一個字符,通常是一個復(fù)雜的象形文字。雙字符集問題并不是說字符由兩個字節(jié)代表。問題在于一些字符(特別是ASCII字符)由1個字節(jié)表示,而另一些字符由兩個字節(jié)表示。

4、Unicode編碼中每個字符占用16個字節(jié),它是一套全球化的編碼方案,包括世界上所有的象形符號。然而Unicode編碼的問題在于每個字符占用兩個字節(jié)的空間在某些情況下非常浪費。

因此,有些時候我們希望維護統(tǒng)一的原始程序,它能根據(jù)某項標(biāo)識進行ASCII碼編譯,也能進行Unicode碼編譯。在windows編程中,提供了TCHAR.H頭文件,它為我們提供了這項功能。

  • 寬字符

ANSI C支持8位的character集,也支持16位的寬字符集。寬字符集并不是unicode,unicode是一種寬字符集。

在C語言中,有如下的幾種定義字符的方式,它們需要的存儲空間如下所示:

char c = 'A'; ? ? //c需要一個字節(jié)的存儲單元。

wchar_t c = 'A'; ? ?//c需要兩個字節(jié)的存儲單元

wchar_t * p = L"Hello!"; ?//p需要四個字節(jié)的存儲單元,L告訴編譯器字符串按寬字符集保存,占14個字節(jié)存儲,其中包含6個寬字符,和1個2位的0字符

針對寬字符的庫函數(shù)示例:

char * pc = "Hello!";

iLength = strlen(pc); ? ?//可知iLength等于6


wchar_t * pw = L"Hello!";

iLength = wcslen(pw); ? //iLength等于6

  • 寬字符與Windows

若想明確定義8位字符變量和字符串,使用CHAR, PCHAR;

若想明確定義16位字符變量和字符串,使用WCHAR, PWCHAR,并使用L標(biāo)識字符串;

對于使用8位還是16位字符,取決于UNICODE標(biāo)識符的定義,此時字符變量和字符串的定義使用TCHAR, PTCHAR,以及TEXT宏。

轉(zhuǎn)載于:https://www.cnblogs.com/qi09/archive/2012/03/01/2362006.html

總結(jié)

以上是生活随笔為你收集整理的【Windows程序设计】Unicode简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。