www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > C語(yǔ)言與CPP編程
[導(dǎo)讀]1.讀取UTF-8編碼文本原理首先了解UTF-8的編碼方式,UTF-8采用可變長(zhǎng)編碼的方式,一個(gè)字符可占1字節(jié)-6字節(jié),其中每個(gè)字符所占的字節(jié)數(shù)由字符開(kāi)始的1的個(gè)數(shù)確定,具體的編碼方式如下:U-00000000–U-0000007F:0xxxxxxxU-00000080–U-00...

1.讀取 UTF-8 編碼文本原理
首先了解 UTF-8 的編碼方式,UTF-8 采用可變長(zhǎng)編碼的方式,一個(gè)字符可占 1 字節(jié) -6 字節(jié),其中每個(gè)字符所占的字節(jié)數(shù)由字符開(kāi)始的 1 的個(gè)數(shù)確定,具體的編碼方式如下:
U-00000000 – U-0000007F: 0xxxxxxxU-00000080 – U-000007FF: 110xxxxx 10xxxxxxU-00000800 – U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxxU-00010000 – U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxxU-00200000 – U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxxU-04000000 – U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx因此,對(duì)于每個(gè)字節(jié)如果起始位為“0”則說(shuō)明,該字符占有 1 字節(jié)。

如果起始位為“10”則說(shuō)明該字節(jié)不是字符的其實(shí)字節(jié)。

如果起始為為 n 個(gè)“1” 1個(gè)“0”,則說(shuō)明改字符占有 n 個(gè)字節(jié)。其中1≤n≤6。

因此對(duì)于 UTF-8 的編碼,我們只需要每次計(jì)算每個(gè)字符開(kāi)始字節(jié)的 1 的個(gè)數(shù),就可以確定這個(gè)字符的長(zhǎng)度。

GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);color: rgb(34, 34, 34);border-bottom: 1px solid rgb(238, 238, 238);line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">2.讀取 GBK 系列文本原理

對(duì)于 ASCII、GB2312、GBK 到 GB18030 編碼方法是向下兼容的?,即同一個(gè)字符在這些方案中總是有相同的編碼,后面的標(biāo)準(zhǔn)支持更多的字符。

在這些編碼中,英文和中文可以統(tǒng)一地處理。區(qū)分中文編碼的方法是高字節(jié)的最高位不為 0。

因此我們只需處理好 GB18130,就可以處理與他兼容的所有編碼,對(duì)于GB18130 使用雙字節(jié)變長(zhǎng)編碼。

單字節(jié)部分從 0×0~0x7F 與 ASCII 編碼兼容。雙字節(jié)部分,首字節(jié)從 0×81~0xFE,尾字節(jié)從 0×40~0x7E以及 0×80~0xFE,與 GBK 標(biāo)準(zhǔn)基本兼容。

因此只需檢測(cè)首字節(jié)是否小于 0×81 即可確定其為單字節(jié)編碼還是雙字節(jié)編碼。

GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);color: rgb(34, 34, 34);border-bottom: 1px solid rgb(238, 238, 238);line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">3.C 代碼實(shí)現(xiàn)

對(duì)于一個(gè)語(yǔ)言處理系統(tǒng),讀取不同編碼的文本應(yīng)該是最基礎(chǔ)的需求,文本的編碼方式應(yīng)該對(duì)系統(tǒng)其他調(diào)用者透明,只需每次獲取一個(gè)字符即可,而不需要關(guān)注這個(gè)文本的編碼方式。從而我們定義了抽象類(lèi) Text,及其接口ReadOneChar,并使兩個(gè)文本類(lèi) GbkText 和 UtfText 繼承這個(gè)抽象類(lèi),當(dāng)系統(tǒng)需要讀取更多種編碼的文件時(shí),只需要定義新的類(lèi)然后繼承該抽象類(lèi)即可,并不需要更改調(diào)用該類(lèi)的代碼。從而獲得更好的擴(kuò)展性。

更好的方式是使用簡(jiǎn)單工廠模式,使不同的文本編碼格式對(duì)于調(diào)用類(lèi)完全透明,簡(jiǎn)單工廠模式詳解請(qǐng)參看:設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖A(chǔ)。


其中 Text 抽象類(lèi)的定義如下:
#ifndef TEXT_H#define TEXT_H#include #include using namespace std;class Text{ protected: char * m_binaryStr; size_t m_length; size_t m_index; public: Text(string path); void SetIndex(size_t index); virtual bool ReadOneChar(string
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

北京 2025年6月23日 /美通社/ -- 福建升騰資訊有限公司(簡(jiǎn)稱(chēng)升騰)日前曝光了一款新品國(guó)產(chǎn)信創(chuàng)筆記本電腦——M460 2。這是升騰基于兆芯開(kāi)先KX-7000處理器推出的首款筆記本,加上此前的P410 2臺(tái)式機(jī)...

關(guān)鍵字: 筆記本電腦 處理器 GB CPU

深圳2025年4月24日 /美通社/ -- 4月23日,2025上海國(guó)際車(chē)展盛大啟幕,全球汽車(chē)產(chǎn)業(yè)的目光聚焦于這場(chǎng)科技與創(chuàng)新的盛宴。在眾多展示亮點(diǎn)中,汽車(chē)AI+應(yīng)用無(wú)疑是最大的熱點(diǎn)之一,“駕控超級(jí)大腦”技術(shù)概念、車(chē)機(jī)交互...

關(guān)鍵字: GB EMMC Flash PS

上海2025年3月13日 /美通社/ -- 半導(dǎo)體行業(yè)作為全球科技產(chǎn)業(yè)的核心驅(qū)動(dòng)力,近年來(lái)在復(fù)雜環(huán)境中呈現(xiàn)波動(dòng)式增長(zhǎng)。據(jù)SEMI(國(guó)際半導(dǎo)體產(chǎn)業(yè)協(xié)會(huì))數(shù)據(jù)顯示,2023 年全球半導(dǎo)體市場(chǎng)規(guī)模約 5200 億美元...

關(guān)鍵字: 芯片產(chǎn)業(yè) AI EDA GB

深圳2025年3月6日 /美通社/ -- 西班牙時(shí)間3月3日至6日,江波龍首次亮相巴塞羅那MWC2025,以"PTM賦能世界移動(dòng)通信"為主題,攜一系列創(chuàng)新存儲(chǔ)產(chǎn)品參展,引發(fā)廣泛關(guān)注。 作為半導(dǎo)體存儲(chǔ)...

關(guān)鍵字: 移動(dòng)通信 黑科技 SSD GB

深圳2025年2月20日 /美通社/ -- 1月,江波龍推出了7.2mm×7.2mm的超小尺寸eMMC*,為AI智能穿戴設(shè)備的物理空間優(yōu)化提供了全新的存儲(chǔ)解決方案。繼這款創(chuàng)新封裝存儲(chǔ)產(chǎn)品問(wèn)世后,江波龍?jiān)俅瓮瞥龃┐鞔鎯?chǔ)力作...

關(guān)鍵字: 智能穿戴 智能穿戴設(shè)備 EMMC GB

深圳2025年1月24日 /美通社/ -- 在智能穿戴設(shè)備的設(shè)計(jì)中,每一毫米都至關(guān)重要。隨著AI技術(shù)的深度融入,智能穿戴設(shè)備不僅需要更強(qiáng)大的性能,還需要在極其有限的空間內(nèi)實(shí)現(xiàn)更多功能。近日,江波龍推出了7.2mm&tim...

關(guān)鍵字: EMMC 智能穿戴設(shè)備 TIMES GB

北京2024年10月28日 /美通社/ -- 10月26日,銘瑄在北京金隅喜來(lái)登酒店舉辦了一場(chǎng)大型發(fā)布會(huì),推出了以"智?競(jìng)未來(lái)"為主題的高性能800系列主板。該系列共有12款創(chuàng)新型號(hào),彰顯了銘瑄將自然美學(xué)與尖端科技完美融...

關(guān)鍵字: IC 英特爾 GB 5G

為AI服務(wù)器與數(shù)據(jù)中心帶來(lái)容量/帶寬/速度三合一升級(jí) 全新架構(gòu)以PCIe Gen5帶寬突破計(jì)算僵局,E3.S 2T規(guī)格為系統(tǒng)擴(kuò)充增添彈性 深圳2024年9月5日 /美通社...

關(guān)鍵字: 內(nèi)存模塊 帶寬 GB CPU

深圳2024年8月28日 /美通社/ -- 8月27日至29日,江波龍攜旗下行業(yè)類(lèi)存儲(chǔ)品牌FORESEE亮相ELEXCON2024深圳國(guó)際電子展,展示其在存儲(chǔ)領(lǐng)域的最新技術(shù)成果。在此次展會(huì)上,江波龍首次提出PTM(存儲(chǔ)產(chǎn)...

關(guān)鍵字: 電子 GB SE FOR

北京2024年8月23日 /美通社/ -- 近日,浪潮信息發(fā)布源2.0-M32大模型4bit和8bit量化版,性能比肩700億參數(shù)的LLaMA3開(kāi)源大模型。4bit量化版推理運(yùn)行顯存僅需23.27GB,處理每token所...

關(guān)鍵字: 模型 顯存 GB 3G
關(guān)閉