本篇內(nèi)容主要講解“嵌入式Linux_Framebuffer_04點(diǎn)陣顯示漢字的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“嵌入式Linux_Framebuffer_04點(diǎn)陣顯示漢字的方法”吧!
創(chuàng)新互聯(lián)致力于成都網(wǎng)站建設(shè)、成都做網(wǎng)站,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
中文的顯示與ASCII字符的顯示過程是一樣的
確定要顯示的漢字
在字庫中找到對(duì)應(yīng)漢字的點(diǎn)陣數(shù)據(jù)
使用描點(diǎn)函數(shù)繪制漢字點(diǎn)陣數(shù)據(jù) 但是與ASCII字符顯示不同的是,漢字需要注意漢字的編碼方式。C代碼源文件的編碼方式和編譯出來的程序中的漢字所使用的編碼方式也是有差別的。 注意:一般采用ANSI或者UTF-8編碼,而不采用UTF-16編碼,因?yàn)閁TF-16編碼ASCII字符也是2個(gè)字節(jié),此時(shí)其中一個(gè)字節(jié)就是0,在C語言中0表示字符串的結(jié)束容易引起誤會(huì)。
在編寫C程序的時(shí),不論源碼使用的ANSI還是UTF8編碼,在編譯的時(shí)候可以使用 -finput-charset=GB2312選項(xiàng)來告知編譯器源碼所使用的編碼方式,如果未使用此選項(xiàng),GCC會(huì)默認(rèn)源碼的編碼方式是UTF-8;另外可以使用 -fexec-charset=GB2312來設(shè)置編譯出的可執(zhí)行程序中的字符是UTF8編碼。如果源碼的實(shí)際編碼方式與-finput-charset所指定的不同,后者編譯出的可執(zhí)行程序的編碼方式與-fexec-charset所指定的編碼不同,編譯器會(huì)進(jìn)行編碼格式轉(zhuǎn)換的。
常用漢字的點(diǎn)陣字庫是HZK16。HZK16里每個(gè)漢字使用32個(gè)字節(jié)來描述,如下圖所示: 
與ASCII點(diǎn)陣字庫一樣,32字節(jié)中每一位代表一個(gè)像素,值為1表示點(diǎn)亮,為0表示熄滅。
HZK16 中是以 GB2312編碼值來查找點(diǎn)陣的,以中字為例,它的編碼值是0xd6d0。
0xd6表示區(qū)碼,表示在:0xd6-0xa1區(qū) [每一個(gè)區(qū)中有94個(gè)漢字]
0xd0表示位碼,表示它是這個(gè)區(qū)里的第0xd0-0xa1個(gè)字符
區(qū)位碼從0xa1開始并不是從0開始是為了兼容ASCII碼。所以要顯示的"中"字,它是HZK16庫里第 (0xd6-0xa1)*94+(0xd0-0xa1)個(gè)字符。 示例源碼
到此,相信大家對(duì)“嵌入式Linux_Framebuffer_04點(diǎn)陣顯示漢字的方法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)站名稱:嵌入式Linux_Framebuffer_04點(diǎn)陣顯示漢字的方法
文章路徑:http://chinadenli.net/article4/jhpdie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、搜索引擎優(yōu)化、品牌網(wǎng)站建設(shè)、建站公司、手機(jī)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)