内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Windows核心編程(3)字符編碼詳解

一、字符編碼 詳細介紹

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)甘州免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

1.字節(jié)(Byte)是一種計量單位,他是計算機信息技術(shù)存儲容量的一種單位


2.字符的意義: 字符數(shù)計算機文字中使用的文字和符號,比如1,2,3,4,~,@,!,%,^等待

3.在不同編碼里字符和字節(jié)對應(yīng)的關(guān)系不同

a.在ASCLL碼中,一個英文字母(不區(qū)分大小寫)占一個字節(jié)(8bit),一個漢子占兩個字節(jié)(16bit)

b.UTF-8編碼中,一個英文字符等于一個字節(jié),一個中文(含繁體)等于三個字節(jié)

c.在Unicode編碼中,一個英文兩個字節(jié), 一個中文(含繁體)占兩個字節(jié)

d.英文符號占一個字節(jié),中文符號占兩個字節(jié)

4.多字符集 : 各國文字編碼喲重疊的編碼(編碼沖突)導(dǎo)致亂碼

a.最開始,internet上只有一種字符集------ANS的ASCLL字符集,他用7bits表示一個字符,

總共表示128個字符,包括英文字母,數(shù)字,標點符號,之后進行擴展,使用8bits表示一個字符

可以表示256個字符, 再原來的7bits基礎(chǔ)上加入了一些特殊字符.

b.后來各國語音的加入,ASCLL已經(jīng)不能滿足需求,各國都在ASCLL的基礎(chǔ)上制定了自己的

字符集, 這些從ANSL標準派生的字符集被習(xí)慣的稱為ANSL字符集

正式名稱MBCS(Multi-Byte Chactacter System,即多字節(jié)字符系統(tǒng)),每種語言都有自己的字符集

導(dǎo)致各種字符集實在太多,在國際交流中非常不便, 因此提出了Unicode字符集,

它固定使用16 bits(兩個字節(jié)、一個字)來表示一個字符,共可以表示65535個字符,將世界上

所有語音常用字符都收錄其中,(Unicode標準稱為UTF-16),后來為了能使雙字節(jié)的Unicode

能夠在現(xiàn)存的處理單字節(jié)系統(tǒng)上正確傳輸,出現(xiàn)了UTF-8,使用MBCS的方式對Unicode進行編碼.

UTF-8是編碼,它屬于Unicode字符集,

5.Windows定義了一些數(shù)據(jù)類型

a.wchar_t 就是兩個字節(jié) 帶有W的都是這個類型

b.WCHAR Unicode字符 他其實就是wchar_t 

c.PWSTR 指向Unicode字符串的指針 wchar_t *

d.PCWSTR 指向一個常量的Unicode const wchar_t * 

e.對應(yīng)多字節(jié)的類型為 CHAR,LPSTR,LPCSTR

f.ASNL/Unicode通用數(shù)據(jù)類型,

TCAHR 多字符集中為char, Unicode中為wchar_t

PTSTR 多字符集中為char *, Unicode中為wchar_t *

LPCTSTR 多字符集中為const char *, Unicode中為const wchar_t *

f.帶有A就是多字符集, W就是Unicode(款字符),T就是通用的

7.Windows中多字符集和Unicode相互轉(zhuǎn)化的API

a.WideCharToMultiByte 映射一個Unicode字符串到多字節(jié)字符串

b.MultiByteToWideChar 映射一個多字節(jié)字符串到Unicode字符串

8.函數(shù) 使用上面的函數(shù)比較復(fù)雜  則可以使用下面的宏函數(shù)

使用之前要先聲明標識符 USES_CONVERSION;

A2W: 將多字節(jié) 轉(zhuǎn) 寬字節(jié)

USES_CONVERSION
CString str;
char* AChar = "abcdefg";
wchar_t* WChar = A2W(AChar); 
str = WChar;

W2A: 將款字節(jié) 轉(zhuǎn) 多字節(jié)

USES_CONVERSION;
wchar_t* AChar = L"abcdefg啊";
char* WChar = W2A(AChar);

T2A: T代表跟隨系統(tǒng) 轉(zhuǎn) 多字節(jié)

USES_CONVERSION;  
char * pChar="char to cstring";  
CString cTemp=A2T(pChar);

T2W: 系統(tǒng)類型 轉(zhuǎn) 款字節(jié)

SES_CONVERSION;  
CString cTemp =_T("char to cstring");  
char * pChar=A2T(pChar);

9.謹慎使用上面的宏函數(shù)轉(zhuǎn)換

a.如果你在一個循環(huán)里使用這個函數(shù) 可能會引起堆棧溢出

因為你查看代碼發(fā)現(xiàn)他函數(shù)里面會調(diào)用alloc申請內(nèi)存,他會在函數(shù)的棧中分配,

VC編譯器默認是2M,在一個循環(huán)中調(diào)用這個函數(shù)就會一直分配內(nèi)存.

b.解決辦法最好是使用 WideCharToMultiByte  MultiByteToWideChar 

這兩個API,  把這兩個API封裝一下, 使用就很方便了.

10.使用THAR _TEXT 可以同時適應(yīng)Unicode和多字節(jié)字符集

網(wǎng)站名稱:Windows核心編程(3)字符編碼詳解
鏈接地址:http://www.rwnh.cn/article8/jichip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名App開發(fā)、電子商務(wù)、建站公司、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
灵石县| 德昌县| 信阳市| 临沭县| 清河县| 许昌县| 临沭县| 射阳县| 富阳市| 凌海市| 福建省| 井冈山市| 涞水县| 松原市| 东辽县| 浪卡子县| 新宁县| 民权县| 江津市| 洮南市| 永寿县| 常山县| 高台县| 新田县| 安泽县| 连云港市| 临沂市| 汾西县| 临安市| 平顺县| 建昌县| 莱芜市| 德钦县| 美姑县| 祥云县| 延庆县| 常德市| 高尔夫| 台东市| 平阴县| 尚志市|