配套的和程序匯總寫代碼都放在這里ltdc2unicode_第1頁(yè)
配套的和程序匯總寫代碼都放在這里ltdc2unicode_第2頁(yè)
配套的和程序匯總寫代碼都放在這里ltdc2unicode_第3頁(yè)
配套的和程序匯總寫代碼都放在這里ltdc2unicode_第4頁(yè)
配套的和程序匯總寫代碼都放在這里ltdc2unicode_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

LTDC—液晶顯示中英文零死角玩轉(zhuǎn)STM32淘寶:論壇:掃描進(jìn)入淘寶店鋪主講內(nèi)容01字符編碼02什么是字模?03各種模式的液晶顯示字符實(shí)驗(yàn)參考資料:《零死角玩轉(zhuǎn)STM32》“LTDC—液晶顯示中英文”章節(jié)LTDC—液晶顯示中英文Unicode字符集和編碼 由于各個(gè)國(guó)家或地區(qū)都根據(jù)使用自己的文字系統(tǒng)制定標(biāo)準(zhǔn),同一個(gè)編碼在不同的標(biāo)準(zhǔn)里表示不一樣的字符,各個(gè)標(biāo)準(zhǔn)互不兼容,而又沒有一個(gè)標(biāo)準(zhǔn)能夠囊括所有的字符,即無(wú)法用一個(gè)標(biāo)準(zhǔn)表達(dá)所有字符。國(guó)際標(biāo)準(zhǔn)化組織(ISO)為解決這一問(wèn)題,它舍棄了地區(qū)性的方案,重新給全球上所有文化使用的字母和符號(hào)進(jìn)行編號(hào),對(duì)每個(gè)字符指定一個(gè)唯一的編號(hào)(ASCII中原有的字符編號(hào)不變),這些字符的號(hào)碼從0x000000到0x10FFFF,該編號(hào)集被稱為UniversalMultiple-OctetCodedCharacterSet,簡(jiǎn)稱UCS,也被稱為Unicode。最新版的Unicode標(biāo)準(zhǔn)還包含了表情符號(hào)(聊天軟件中的部分emoji表情),可訪問(wèn)Unicode官網(wǎng)了解:。

Unicode字符集只是對(duì)字符進(jìn)行編號(hào),但具體怎么對(duì)每個(gè)字符進(jìn)行編碼,Unicode并沒指定,因此也衍生出了如下幾種unicode編碼方案(UnicodeTransformationFormat)。LTDC—液晶顯示中英文UTF-32

對(duì)Unicode字符集編碼,最自然的就是UTF-32方式了。編碼時(shí),它直接對(duì)Unicode字符集里的每個(gè)字符都用4字節(jié)來(lái)表示,轉(zhuǎn)換方式很簡(jiǎn)單,直接將字符對(duì)應(yīng)的編號(hào)數(shù)字轉(zhuǎn)換為4字節(jié)的二進(jìn)制數(shù)。

由于UTF-32把每個(gè)字符都用要4字節(jié)來(lái)存儲(chǔ),因此UTF-32不兼容ASCII編碼,也就是說(shuō)ASCII編碼的文件用UTF-32標(biāo)準(zhǔn)來(lái)打開會(huì)成為亂碼。字符GBK編碼Unicode編號(hào)UTF-32編碼A0x410x00000041大端格式0x00000041啊0xB0A10x0000554A大端格式0x0000554ALTDC—液晶顯示中英文UTF-32

對(duì)UTF-32數(shù)據(jù)進(jìn)行解碼的時(shí)候,以4個(gè)字節(jié)為單位進(jìn)行解析即可,根據(jù)編碼可直接找到Unicode字符集中對(duì)應(yīng)編號(hào)的字符。 UTF-32的優(yōu)點(diǎn)是編碼簡(jiǎn)單,解碼也很方便,讀取編碼的時(shí)候每次都直接讀4個(gè)字節(jié),不需要加其它的判斷。它的缺點(diǎn)是浪費(fèi)存儲(chǔ)空間,大量常用字符的編號(hào)只需要2個(gè)字節(jié)就能表示。其次,在存儲(chǔ)的時(shí)候需要指定字節(jié)順序,是高位字節(jié)存儲(chǔ)在前(大端格式),還是低位字節(jié)存儲(chǔ)在前(小端格式)。LTDC—液晶顯示中英文UTF-16

針對(duì)UTF-32的缺點(diǎn),人們改進(jìn)出了UTF-16的編碼方式,它采用2字節(jié)或4字節(jié)的變長(zhǎng)編碼方式(UTF-32定長(zhǎng)為4字節(jié))。對(duì)Unicode字符編號(hào)在0到65535的統(tǒng)一用2個(gè)字節(jié)來(lái)表示,將每個(gè)字符的編號(hào)轉(zhuǎn)換為2字節(jié)的二進(jìn)制數(shù),即從0x0000到0xFFFF。而由于Unicode字符集在0xD800-0xDBFF這個(gè)區(qū)間是沒有表示任何字符的,所以UTF-16就利用這段空間,對(duì)Unicode中編號(hào)超出0xFFFF的字符,利用它們的編號(hào)做某種運(yùn)算與該空間建立映射關(guān)系,從而利用該空間表示4字節(jié)擴(kuò)展,感興趣的讀者可查閱相關(guān)資料了解具體的映射過(guò)程。字符GB18030編碼Unicode編號(hào)UTF-16編碼A0x410x00000041大端格式0x0041啊0xB0A10x0000554A大端格式0x554A??0x9735F8320x000275CC大端格式0xD85DDDCC注:??五筆:TLHH(不支持GB18030碼的輸入法無(wú)法找到該字,感興趣可搜索它的Unicode編號(hào)找到)LTDC—液晶顯示中英文UTF-16 UTF-16解碼時(shí),按兩個(gè)字節(jié)去讀取,如果這兩個(gè)字節(jié)不在0xD800到0xDFFF范圍內(nèi),那就是雙字節(jié)編碼的字符,以雙字節(jié)進(jìn)行解析,找到對(duì)應(yīng)編號(hào)的字符。如果這兩個(gè)字節(jié)在0xD800到0xDFFF之間,那它就是四字節(jié)編碼的字符,以四字節(jié)進(jìn)行解析,找到對(duì)應(yīng)編號(hào)的字符。UTF-16編碼的優(yōu)點(diǎn)是相對(duì)UTF-32節(jié)約了存儲(chǔ)空間,缺點(diǎn)是仍不兼容ASCII碼,仍有大小端格式問(wèn)題。LTDC—液晶顯示中英文UTF-8 UTF-8是目前Unicode字符集中使用得最廣的編碼方式,目前大部分網(wǎng)頁(yè)文件已使用UTF-8編碼,如使用瀏覽器查看百度首頁(yè)源文件,可以在前幾行HTML代碼中找到如下代碼:<metahttp-equiv=Content-Typecontent="text/html;charset=utf-8">其中“charset”等號(hào)后面的“utf-8”即表示該網(wǎng)頁(yè)字符的編碼方式UTF-8。LTDC—液晶顯示中英文UTF-8 UTF-8也是一種變長(zhǎng)的編碼方式,它的編碼有1、2、3、4字節(jié)長(zhǎng)度的方式,每個(gè)Unicode字符根據(jù)自己的編號(hào)范圍去進(jìn)行對(duì)應(yīng)的編碼。它的編碼符合以下規(guī)律:對(duì)于UTF-8單字節(jié)的編碼,該字節(jié)的第1位設(shè)為0(從左邊數(shù)起第1位,即最高位),剩余的位用來(lái)寫入字符的Unicode編號(hào)。即對(duì)于Unicode編號(hào)從0x00000000-0x0000007F的字符,UTF-8編碼只需要1個(gè)字節(jié),因?yàn)檫@個(gè)范圍Unicode編號(hào)的字符與ASCII碼完全相同,所以UTF-8兼容了ASCII碼表。對(duì)于UTF-8使用N個(gè)字節(jié)的編碼(N>1),第一個(gè)字節(jié)的前N位設(shè)為1,第N+1位設(shè)為0,后面字節(jié)的前兩位都設(shè)為10,這N個(gè)字節(jié)的其余空位填充該字符的Unicode編號(hào),高位用0補(bǔ)足。LTDC—液晶顯示中英文UTF-8Unicode(16進(jìn)制)UTF-8(2進(jìn)制)編號(hào)范圍第一字節(jié)第二字節(jié)第三字節(jié)第四字節(jié)第五字節(jié)00000000-0000007F0xxxxxxx

00000080-000007FF110xxxxx10xxxxxx

00000800-0000FFFF1110xxxx10xxxxxx10xxxxxx

00010000-0010FFFF11110xxx10xxxxxx10xxxxxx10xxxxxx

…111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxx UTF-8解碼的時(shí)候以字節(jié)為單位去看,如果第一個(gè)字節(jié)的bit位以0開頭,那就是ASCII字符,以單字節(jié)進(jìn)行解析。如果第一個(gè)字節(jié)的數(shù)據(jù)位以“110”開頭,就按雙字節(jié)進(jìn)行解析,3、4字節(jié)的解析方法類似。 UTF-8的優(yōu)點(diǎn)是兼容了ASCII碼,節(jié)約空間,且沒有字節(jié)順序的問(wèn)題,它直接根據(jù)第1個(gè)字節(jié)前面數(shù)據(jù)位中連續(xù)的1個(gè)數(shù)決定后面有多少個(gè)字節(jié)。不過(guò)使用UTF-8編碼漢字平均需要3個(gè)字節(jié),比GBK編碼要多一個(gè)字節(jié)。LTDC—液晶顯示中英文BOM由于UTF系列有多種編碼方式,而且對(duì)于UTF-16和UTF-32還有大小端的區(qū)分,那么計(jì)算機(jī)軟件在打開文檔的時(shí)候到底應(yīng)該用什么編碼方式去解碼呢?有的人就想到在文檔最前面加標(biāo)記,一種標(biāo)記對(duì)應(yīng)一種編碼方式,這些標(biāo)記就叫做BOM(ByteOrderMark),它們位于文本文件的開頭,見下表。注意BOM是對(duì)Unicode的幾種編碼而言的,ANSI編碼沒有BOM。BOM標(biāo)記表示的編碼0xEF0xBB0xBFUTF-80xFF0xFEUTF-16小端格式0xFE0xFFUTF-16

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論