欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
關(guān)于Unicode字符集

最初的unicode編碼是固定長(cháng)度的,16位,也就是2兩個(gè)字節代表一個(gè)字符,這樣一共可以表示65536個(gè)字符。顯然,這樣要表示各種語(yǔ)言中所有的字符是遠遠不夠的。Unicode4.0規范考慮到了這種情況,定義了一組附加字符編碼,附加字符編碼采用2個(gè)16位來(lái)表示,這樣最多可以定義1048576個(gè)附加字符,目前unicode4.0只定義了45960個(gè)附加字符。

Unicode只是一個(gè)編碼規范,目前實(shí)際實(shí)現的unicode編碼只要有三種:UTF-8,UCS-2和UTF-16,三種unicode字符集之間可以按照規范進(jìn)行轉換。

UTF-8

UTF-8是一種8位的unicode字符集,編碼長(cháng)度是可變的,并且是ASCII字符集的嚴格超集,也就是說(shuō)ASCII中每個(gè)字符的編碼在UTF-8中是完全一樣的。UTF-8字符集中,一個(gè)字符可能是1個(gè)字節,2個(gè)字節,3個(gè)字節或者4個(gè)字節長(cháng)。一般來(lái)說(shuō),歐洲的字母字符長(cháng)度為1到2個(gè)字節,而亞洲的大部分字符則是3個(gè)字節,附加字符為4個(gè)字節長(cháng)。

Unix平臺中普遍支持UTF-8字符集,HTML和大多數瀏覽器也支持UTF-8,而window和Java則支持UCS-2。

UTF-8的主要優(yōu)點(diǎn):

  • 對于歐洲字母字符需要較少的存儲空間。
  • 容易從ASCII字符集向UTF-8遷移。

UCS-2

UCS-2是固定長(cháng)度為16位的unicode字符集。每個(gè)字符都是2個(gè)字節,UCS-2只支持unicode3.0,所以不支持附加字符。

UCS-2的優(yōu)點(diǎn):

  • 對于亞洲字符的存儲空間需求比UTF-8少,因為每個(gè)字符都是2個(gè)字節。
  • 處理字符的速度比UTF-8更快,因為是固定長(cháng)度編碼的。
  • 對于windows和java的支持更好。

UTF-16

UTF-16也是一種16位編碼的字符集。實(shí)際上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0規范的UCS-2。所以UTF-16是UCS-2的嚴格超集。

UTF-16中的字符,要么是2個(gè)字節,要么是4個(gè)字節表示的。UTF-16主要在windows2000以上版本使用。

UTF-16相對UTF-8的優(yōu)點(diǎn),和UCS-2是一致的。

Oracle從7.0開(kāi)始提供對Unicode的支持。oracle個(gè)版本的unicode字符集支主要有:

AL32UTF8

一種UTF-8編碼的字符集,支持最新的unicode4.0標準。字符長(cháng)度為1,2或者3個(gè)字節,附加字符則為4字節長(cháng)。

UTF8

支持unicode3.0的UTF-8編碼方式。由于附加字符是在unicode3.1中提出的,UTF8不支持附加字符。但是unicode3.0已經(jīng)為附加字符預留了編碼空間,所以即使在UTF8的數據庫中插入附加字符,也是可以的,只是數據庫會(huì )將該字符分隔成兩部分,需要占6個(gè)字符的長(cháng)度。所以,如果需要支持附加字符,那么建議將數據庫的字符集切換為新的AL32UTF8。

UTF8可用于數據庫字符集,也可用于國家字符集。

UTFE

UTFE是基于EBCDIC平臺的unicode字符集,就像ASCII平臺上的UTF8一樣。不同的是,UTFE中,每個(gè)字符可能占1,2,3或者4個(gè)字節,而附加字符則需要2個(gè)4個(gè)字節,也就是8個(gè)字節來(lái)表示。

AL16UTF16

AL16UTF16是一種UTF-16編碼的unicode字符集,在Oracle中用于國家字符集。

AL24UTFFSS

該字符集只支持unicode1.1規范,在Oracle7.2~8i版本中使用,目前已經(jīng)淘汰。

 

CString在Unicode下一個(gè)字節占16bit,在ascii下占8bit,改成char數組后在什么環(huán)境下都一樣的

 

編寫(xiě)程序最好是:同一個(gè)源文件既可以在UNICODE下編譯,又可以在A(yíng)NSI下編譯

工程--設置--C/C++--預處理器,可以定義標識符,如UNICODE,_UNICODE,標識是按ASCII編譯,還是按UNICODE編譯


#include <tchar.h>

char定義全部 改成TCHAR,TCHAR根據設置不同定義為char或者wchar
字符串加用TEXT宏,如TEXT("你好"),根據編譯器的設置不同,分別定義為ANSI或者UNICODE版本
字符串也大部分有其通用版本:

最大長(cháng)度版比標準版多一個(gè)參數,表示緩沖區的長(cháng)度
有v的其參數為參數列表指針,使用va_list、va_start和va_end宏

C提供的字符串函數: ASCII 寬字符 通用形式

1.可變參數:
標準版 sprintf swprintf _stprintf
最大長(cháng)度版 _snprintf _snwprintf _sntprintf
WindowsNT版 wsprintfA wsprintfW wsprintf


2.數組的指針作參數:
   
標準版 vsprintf vswprintf _vstprintf
最大長(cháng)度版 _vsnprintf _vsnwprintf _vsntprintf
WindowsNT版 wvsprintfA wvsprintfW wvsprintf




以下引用《Windows程序設計》
美國標準


早期計算機的字符碼是從Hollerith卡片(號稱(chēng)不能被折迭、卷曲或毀傷)發(fā)展而來(lái)的,該卡片由Herman Hollerith發(fā)明并首次在1890年的美國人口普查中使用。6位字符碼系統BCDIC(Binary-Coded Decimal Interchange Code:二進(jìn)制編碼十進(jìn)制交換編碼)源自Hollerith代碼,在60年代逐步擴展為8位EBCDIC,并一直是IBM大型主機的標準,但沒(méi)使用在其它地方。

美國信息交換標準碼(ASCII:American Standard Code for Information Interchange)起始于50年代后期,最后完成于1967年。開(kāi)發(fā)ASCII的過(guò)程中,在字符長(cháng)度是6位、7位還是8位的問(wèn)題上產(chǎn)生了很大的爭議。從可靠性的觀(guān)點(diǎn)來(lái)看不應使用替換字符,因此ASCII不能是6位編碼,但由于費用的原因也排除了8位版本的方案(當時(shí)每位的儲存空間成本仍很昂貴)。這樣,最終的字符碼就有26個(gè)小寫(xiě)字母、26個(gè)大寫(xiě)字母、10個(gè)數字、32個(gè)符號、33個(gè)句柄和一個(gè)空格,總共128個(gè)字符碼。ASCII現在記錄在A(yíng)NSI X3.4-1986字符集-用于信息交換的7位美國國家標準碼(7-Bit ASCII:7-Bit American National Standard Code for Information Interchange),由美國國家標準協(xié)會(huì )(American National Standards Institute)發(fā)布。圖2-1中所示的ASCII字符碼與ANSI文件中的格式相似。

ASCII有許多優(yōu)點(diǎn)。例如,26個(gè)字母代碼是連續的(在EBCDIC代碼中就不是這樣的);大寫(xiě)字母和小寫(xiě)字母可通過(guò)改變一位數據而相互轉化;10個(gè)數字的代碼可從數值本身方便地得到(在BCDIC代碼中,字符「0」的編碼在字符「9」的后面?。?br>
最棒的是,ASCII是一個(gè)非??煽康臉藴?。在鍵盤(pán)、視訊顯示卡、系統硬件、打印機、字體文件、操作系統和Internet上,其它標準都不如ASCII碼流行而且根深蒂固。


 



圖2-1 ASCII字符集


國際方面


ASCII的最大問(wèn)題就是該縮寫(xiě)的第一個(gè)字母。ASCII是一個(gè)真正的美國標準,所以它不能良好滿(mǎn)足其它講英語(yǔ)國家的需要。例如英國的英鎊符號(£)在哪里?

英語(yǔ)使用拉?。ɑ蛄_馬)字母表。在使用拉丁語(yǔ)字母表的書(shū)寫(xiě)語(yǔ)言中,英語(yǔ)中的單詞通常很少需要重音符號(或讀音符號)。即使那些傳統慣例加上讀音符號也無(wú)不當的英語(yǔ)單字,例如c鰋perate或者résumé,拼寫(xiě)中沒(méi)有讀音符號也會(huì )被完全接受。

但在美國以南、以北,以及大西洋地區的許多國家,在語(yǔ)言中使用讀音符號很普遍。這些重音符號最初是為使拉丁字母表適合這些語(yǔ)言讀音不同的需要。在遠東或西歐的南部旅游,您會(huì )遇到根本不使用拉丁字母的語(yǔ)言,例如希臘語(yǔ)、希伯來(lái)語(yǔ)、阿拉伯語(yǔ)和俄語(yǔ)(使用斯拉夫字母表)。如果您向東走得更遠,就會(huì )發(fā)現中國象形漢字,日本和朝鮮也采用漢字系統。

ASCII的歷史開(kāi)始于1967年,此后它主要致力于克服其自身限制以更適合于非美國英語(yǔ)的其它語(yǔ)言。例如,1967年,國際標準化組織(ISO:International Standards Organization)推薦一個(gè)ASCII的變種,代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D「為國家使用保留」,而代碼0x5E、0x60和0x7E標為「當國內要求的特殊字符需要8、9或10個(gè)空間位置時(shí),可用于其它圖形符號」。這顯然不是一個(gè)最佳的國際解決方案,因為這并不能保證一致性。但這卻顯示了人們如何想盡辦法為不同的語(yǔ)言來(lái)編碼的。

擴展ASCII


在小型計算機開(kāi)發(fā)的初期,就已經(jīng)嚴格地建立了8位字節。因此,如果使用一個(gè)字節來(lái)保存字符,則需要128個(gè)附加的字符來(lái)補充ASCII。1981年,當最初的IBM PC推出時(shí),視訊卡的ROM中燒有一個(gè)提供256個(gè)字符的字符集,這也成為IBM標準的一個(gè)重要組成部分。

最初的IBM擴展字符集包括某些帶重音的字符和一個(gè)小寫(xiě)希臘字母表(在數學(xué)符號中非常有用),還包括一些塊型和線(xiàn)狀圖形字符。附加的字符也被添加到ASCII控制字符的編碼位置,這是因為大多數控制字符都不是拿來(lái)顯示用的。

該IBM擴展字符集被燒進(jìn)無(wú)數顯示卡和打印機的ROM中,并被許多應用程序用于修飾其文字模式的顯示方式。不過(guò),該字符集并沒(méi)有為所有使用拉丁字母表的西歐語(yǔ)言提供足夠多的帶重音字符,而且也不適用于Windows。Windows不需要圖形字符,因為它有一個(gè)完全圖形化的系統。

在Windows 1.0(1985年11月發(fā)行)中,Microsoft沒(méi)有完全放棄IBM擴展字符集,但它已退居第二重要位置。因為遵循了ANSI草案和ISO標準,純Windows字符集被稱(chēng)作「ANSI字符集」。ANSI草案和ISO標準最終成為ANSI/ISO 8859-1-1987,即「American National Standard for Information Processing-8-Bit Single-Byte Coded Graphic Character Sets-Part 1: Latin Alphabet No 1」,通常也簡(jiǎn)寫(xiě)為「Latin 1」。

在Windows 1.0的《Programmer's Reference》中印出了ANSI字符集的最初版本,如圖2-2所示。


 



圖2-2 Windows ANSI字符集(基于A(yíng)NSI/ISO 8859-1)


空方框表示該位置未定義字符。這與ANSI/ISO 8859-1的最終定義一致。ANSI/ISO 8859-1僅顯示了圖形字符,而沒(méi)有控制字符,因此沒(méi)有定義DEL。此外,代碼0xA0定義為一個(gè)非斷開(kāi)的空格(這意味著(zhù)在編排格式時(shí),該字符不用于斷開(kāi)一行),代碼0xAD是一個(gè)軟連字符(表示除非在行尾斷開(kāi)單詞時(shí)使用,否則不顯示)。此外,ANSI/ISO 8859-1將代碼0xD7定義為乘號(*),0xF7為除號(/)。Windows中的某些字體也定義了從0x80到0x9F的某些字符,但這些不是ANSI/ISO 8859-1標準的一部分。

MS-DOS 3.3(1987年4月發(fā)行)向IBM PC用戶(hù)引進(jìn)了代碼頁(yè)(code page)的概念,Windows也使用此概念。代碼頁(yè)定義了字符的映像代碼。最初的IBM字符集被稱(chēng)作代碼頁(yè)437,或者「MS-DOS Latin US)。代碼頁(yè)850就是「MS-DOS Latin 1」,它用附加的帶重音字母(但不是圖2-2所示的Latin 1 ISO/ANSI標準)代替了一些線(xiàn)形字符。其它代碼頁(yè)被其它語(yǔ)言定義。最低的128個(gè)代碼總是相同的;較高的128個(gè)代碼取決于定義代碼頁(yè)的語(yǔ)言。

在MS-DOS中,如果用戶(hù)為PC的鍵盤(pán)、顯示卡和打印機指定了一個(gè)代碼頁(yè),然后在PC上創(chuàng )建、編輯和打印文件,一切都很正常,每件事都會(huì )保持一致。然而,如果用戶(hù)試圖與使用不同代碼頁(yè)的用戶(hù)交換文件,或者在機器上改變代碼頁(yè),就會(huì )產(chǎn)生問(wèn)題。字符碼與錯誤的字符相關(guān)聯(lián)。應用程序能夠將代碼頁(yè)信息與文件一起保存來(lái)試圖減少問(wèn)題的產(chǎn)生,但該策略包括了某些在代碼頁(yè)間轉換的工作。

雖然代碼頁(yè)最初僅提供了不包括帶重音符號字母的附加拉丁字符集,但最終代碼頁(yè)的較高的128個(gè)字符還是包括了完整的非拉丁字母,例如希伯來(lái)語(yǔ)、希臘語(yǔ)和斯拉夫語(yǔ)。自然,如此多樣會(huì )導致代碼頁(yè)變得混亂;如果少數帶重音的字母未正確顯示,那么整個(gè)文字便會(huì )混亂不堪而不可閱讀。

代碼頁(yè)的擴展正是基于所有這些原因,但是還不夠。斯拉夫語(yǔ)的MS-DOS代碼頁(yè)855與斯拉夫語(yǔ)的Windows代碼頁(yè)1251以及斯拉夫語(yǔ)的Macintosh代碼頁(yè)10007不同。每個(gè)環(huán)境下的代碼頁(yè)都是對該環(huán)境所作的標準字符集修正。IBM OS/2也支援多種EBCDIC代碼頁(yè)。

但等一下,你會(huì )發(fā)現事情變得更糟糕。

雙字節字符集


迄今為止,我們已經(jīng)看到了256個(gè)字符的字符集。但中國、日本和韓國的象形文字符號有大約21,000個(gè)。如何容納這些語(yǔ)言而仍保持和ASCII的某種兼容性呢?

解決方案(如果這個(gè)說(shuō)法正確的話(huà))是雙字節字符集(DBCS:double-byte character set)。DBCS從256代碼開(kāi)始,就像ASCII一樣。與任何行為良好的代碼頁(yè)一樣,最初的128個(gè)代碼是ASCII。然而,較高的128個(gè)代碼中的某些總是跟隨著(zhù)第二個(gè)字節。這兩個(gè)字節一起(稱(chēng)作首字節和跟隨字節)定義一個(gè)字符,通常是一個(gè)復雜的象形文字。

雖然中文、日文和韓文共享一些相同的象形文字,但顯然這三種語(yǔ)言是不同的,而且經(jīng)常是同一個(gè)象形文字在三種不同的語(yǔ)言中代表三件不同的事。Windows支持四個(gè)不同的雙字節字符集:代碼頁(yè)932(日文)、936(簡(jiǎn)體中文)、949(韓語(yǔ))和950(繁體漢字)。只有為這些國家(地區)生產(chǎn)的Windows版本才支持DBCS。

雙字符集問(wèn)題并不是說(shuō)字符由兩個(gè)字節代表。問(wèn)題在于一些字符(特別是ASCII字符)由1個(gè)字節表示。這會(huì )引起附加的程序設計問(wèn)題。例如,字符串中的字符數不能由字符串的字節數決定。必須剖析字符串來(lái)決定其長(cháng)度,而且必須檢查每個(gè)字節以確定它是否為雙字節字符的首字節。如果有一個(gè)指向DBCS字符串中間的指針,那么該字符串前一個(gè)字符的地址是什么呢?慣用的解決方案是從開(kāi)始的指針?lè )治鲈撟址?br>
Unicode解決方案


我們面臨的基本問(wèn)題是世界上的書(shū)寫(xiě)語(yǔ)言不能簡(jiǎn)單地用256個(gè)8位代碼表示。以前的解決方案包括代碼頁(yè)和DBCS已被證明是不能滿(mǎn)足需要的,而且也是笨拙的。那什么才是真正的解決方案呢?

身為程序寫(xiě)作者,我們經(jīng)歷過(guò)這類(lèi)問(wèn)題。如果事情太多,用8位數值已經(jīng)不能表示,那么我們就試更寬的值,例如16位值。而且這很有趣的,正是Unicode被制定的原因。與混亂的256個(gè)字符代碼映像,以及含有一些1字節代碼和一些2字節代碼的雙字節字符集不同,Unicode是統一的16位系統,這樣就允許表示65,536個(gè)字符。這對表示所有字符及世界上使用象形文字的語(yǔ)言,包括一系列的數學(xué)、符號和貨幣單位符號的集合來(lái)說(shuō)是充裕的。

明白Unicode和DBCS之間的區別很重要。Unicode使用(特別在C程序設計語(yǔ)言環(huán)境里)「寬字符集」?!窾nicode中的每個(gè)字符都是16位寬而不是8位寬?!乖赨nicode中,沒(méi)有單單使用8位數值的意義存在。相比之下,在雙字節字符集中我們仍然處理8位數值。有些字節自身定義字符,而某些字節則顯示需要和另一個(gè)字節共同定義一個(gè)字符。

處理DBCS字符串非常雜亂,但是處理Unicode文字則像處理有秩序的文字。您也許會(huì )高興地知道前128個(gè)Unicode字符(16位代碼從0x0000到0x007F)就是ASCII字符,而接下來(lái)的128個(gè)Unicode字符(代碼從0x0080到0x00FF)是ISO 8859-1對ASCII的擴展。Unicode中不同部分的字符都同樣基于現有的標準。這是為了便于轉換。希臘字母表使用從0x0370到0x03FF的代碼,斯拉夫語(yǔ)使用從0x0400到0x04FF的代碼,美國使用從0x0530到0x058F的代碼,希伯來(lái)語(yǔ)使用從0x0590到0x05FF的代碼。中國、日本和韓國的象形文字(總稱(chēng)為CJK)占用了從0x3000到0x9FFF的代碼。

Unicode的最大好處是這里只有一個(gè)字符集,沒(méi)有一點(diǎn)含糊。Unicode實(shí)際上是個(gè)人計算機行業(yè)中幾乎每個(gè)重要公司共同合作的結果,并且它與ISO 10646-1標準中的代碼是一一對應的。Unicode的重要參考文獻是《The Unicode Standard,Version 2.0》(Addison-Wesley出版社,1996年)。這是一本特別的書(shū),它以其它文件少有的方式顯示了世界上書(shū)寫(xiě)語(yǔ)言的豐富性和多樣性。此外,該書(shū)還提供了開(kāi)發(fā)Unicode的基本原理和細節。

Unicode有缺點(diǎn)嗎?當然有。Unicode字符串占用的內存是ASCII字符串的兩倍。(然而壓縮文件有助于極大地減少文件所占的磁盤(pán)空間。)但也許最糟的缺點(diǎn)是:人們相對來(lái)說(shuō)還不習慣使用Unicode。身為程序寫(xiě)作者,這就是我們的工作。

寬字符和 C


對C程序寫(xiě)作者來(lái)說(shuō),16位字符的想法的確讓人掃興。一個(gè)char和一個(gè)字節同寬是最不能確定的事情之一。沒(méi)幾個(gè)程序寫(xiě)作者清楚ANSI/ISO 9899-1990,這是「美國國家標準程序設計語(yǔ)言-C」(也稱(chēng)作「ANSI C」)通過(guò)一個(gè)稱(chēng)作「寬字符」的概念來(lái)支持用多個(gè)字節代表一字符的字符集。這些寬字符與常用的字符完美地共存。

ANSI C也支持多字節字符集,例如中文、日文和韓文版本W(wǎng)indows支持的字符集。然而,這些多字節字符集被當成單字節構成的字符串看待,只不過(guò)其中一些字符改變了后續字符的含義而已。多字節字符集主要影響C語(yǔ)言程序執行時(shí)期鏈接庫函數。相比之下,寬字符比正常字符寬,而且會(huì )引起一些編譯問(wèn)題。

寬字符不需要是Unicode。Unicode是一種可能的寬字符集。然而,因為本書(shū)的焦點(diǎn)是Windows而不是C執行的理論,所以我將把寬字符和Unicode作為同義語(yǔ)。

Char數據型態(tài)


假定我們都非常熟悉在C程序中使用char數據型態(tài)來(lái)定義和儲存字符跟字符串。但為了便于理解C如何處理寬字符,讓我們先回顧一下可能在Win32程序中出現的標準字符定義。

下面的語(yǔ)句定義并初始化了一個(gè)只包含一個(gè)字符的變量:

char c = 'A' ;
       
變量c需要1個(gè)字節來(lái)保存,并將用十六進(jìn)制數0x41初始化,這是字母A的ASCII代碼。

您可以像這樣定義一個(gè)指向字符串的指針:

char * p ;
       
因為Windows是一個(gè)32位操作系統,所以指針變量p需要用4個(gè)字節保存。您還可初始化一個(gè)指向字符串的指針:

char * p = "Hello!" ;
       
像前面一樣,變量p也需要用4個(gè)字節保存。該字符串保存在靜態(tài)內存中并占用7個(gè)字節-6個(gè)字節保存字符串,另1個(gè)字節保存終止符號0。

您還可以像這樣定義字符數組:

char a[10] ;
       
在這種情況下,編譯器為該數組保留了10個(gè)字節的儲存空間。表達式sizeof(a)將返回10。如果數組是整體變量(即在所有函數外定義),您可使用像下面的語(yǔ)句來(lái)初始化一個(gè)字符數組:

char a[] = "Hello!" ;
       
如果您將該數組定義為一個(gè)函數的區域變量,則必須將它定義為一個(gè)static變量,如下:

static char a[] = "Hello!" ;
       
無(wú)論哪種情況,字符串都儲存在靜態(tài)程序內存中,并在末尾添加0,這樣就需要7個(gè)字節的儲存空間。

寬字符


Unicode或者寬字符都沒(méi)有改變char數據型態(tài)在C中的含義。char繼續表示1個(gè)字節的儲存空間,sizeof (char)繼續返回1。理論上,C中1個(gè)字節可比8位長(cháng),但對我們大多數人來(lái)說(shuō),1個(gè)字節(也就是1個(gè)char)是8位寬。

C中的寬字符基于wchar_t數據型態(tài),它在幾個(gè)表頭文件包括WCHAR.H中都有定義,像這樣:

typedef unsigned short wchar_t ;
       
因此,wchar_t數據型態(tài)與無(wú)符號短整數型態(tài)相同,都是16位寬。

要定義包含一個(gè)寬字符的變量,可使用下面的語(yǔ)句:

wchar_t c = 'A' ;
       
變量c是一個(gè)雙字節值0x0041,是Unicode表示的字母A。(然而,因為Intel微處理器從最小的字節開(kāi)始儲存多字節數值,該字節實(shí)際上是以0x41、0x00的順序保存在內存中。如果檢查Unicode文字的計算機儲存應注意這一點(diǎn)。)

您還可定義指向寬字符串的指針:

wchar_t * p = L"Hello!" ;
       
注意緊接在第一個(gè)引號前面的大寫(xiě)字母L(代表「long」)。這將告訴編譯器該字符串按寬字符保存-即每個(gè)字符占用2個(gè)字節。通常,指針變量p要占用4個(gè)字節,而字符串變量需要14個(gè)字節-每個(gè)字符需要2個(gè)字節,末尾的0還需要2個(gè)字節。

同樣,您還可以用下面的語(yǔ)句定義寬字符數組:

static wchar_t a[] = L"Hello!" ;
       
該字符串也需要14個(gè)字節的儲存空間,sizeof (a) 將返回14。索引數組a可得到單獨的字符。a[1] 的值是寬字符「e」,或者0x0065。

雖然看上去更像一個(gè)印刷符號,但第一個(gè)引號前面的L非常重要,并且在兩個(gè)符號之間必須沒(méi)有空格。只有帶有L,編譯器才知道您需要將字符串存為每個(gè)字符2字

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
windows環(huán)境下unicode編程總結
字符集編碼發(fā)展簡(jiǎn)史
深入了解字符集和編碼
每一個(gè)軟件開(kāi)發(fā)人員絕對必須掌握的關(guān)于 Unicode 和字符集的最基礎的知識 - He,Y...
unicode和MBCS(多字節字符集)的關(guān)系
Computer:字符編碼(ASCII編碼/GBK編碼/BASE64編碼/UTF-8編碼)的簡(jiǎn)介、案例應用(python中的編碼格式及常見(jiàn)編碼問(wèn)題詳解)之詳細攻略
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久