[导读]1.读取UTF-8编码文本原理首先了解UTF-8的编码方式,UTF-8采用可变长编码的方式,一个字符可占1字节-6字节,其中每个字符所占的字节数由字符开始的1的个数确定,具体的编码方式如下:U-00000000–U-0000007F:0xxxxxxxU-00000080–U-00...
1.读取 UTF-8 编码文本原理首先了解 UTF-8 的编码方式,UTF-8 采用可变长编码的方式,一个字符可占 1 字节 -6 字节,其中每个字符所占的字节数由字符开始的 1 的个数确定,具体的编码方式如下:U-00000000 – U-0000007F: 0xxxxxxx
U-00000080 – U-000007FF: 110xxxxx 10xxxxxx
U-00000800 – U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 – U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 – U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 – U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
因此,对于每个字节如果起始位为“0”则说明,该字符占有 1 字节。如果起始位为“10”则说明该字节不是字符的其实字节。如果起始为为 n 个“1” 1个“0”,则说明改字符占有 n 个字节。其中1≤n≤6。因此对于 UTF-8 的编码,我们只需要每次计算每个字符开始字节的 1 的个数,就可以确定这个字符的长度。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 系列文本原理
对于 ASCII、GB2312、GBK 到 GB18030 编码方法是向下兼容的 ,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为 0。因此我们只需处理好 GB18130,就可以处理与他兼容的所有编码,对于GB18130 使用双字节变长编码。单字节部分从 0×0~0x7F 与 ASCII 编码兼容。双字节部分,首字节从 0×81~0xFE,尾字节从 0×40~0x7E以及 0×80~0xFE,与 GBK 标准基本兼容。因此只需检测首字节是否小于 0×81 即可确定其为单字节编码还是双字节编码。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 代码实现
对于一个语言处理系统,读取不同编码的文本应该是最基础的需求,文本的编码方式应该对系统其他调用者透明,只需每次获取一个字符即可,而不需要关注这个文本的编码方式。从而我们定义了抽象类 Text,及其接口ReadOneChar,并使两个文本类 GbkText 和 UtfText 继承这个抽象类,当系统需要读取更多种编码的文件时,只需要定义新的类然后继承该抽象类即可,并不需要更改调用该类的代码。从而获得更好的扩展性。更好的方式是使用简单工厂模式,使不同的文本编码格式对于调用类完全透明,简单工厂模式详解请参看:设计模式:可复用面向对象软件基础。其中 Text 抽象类的定义如下:#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
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
(全球TMT2023年8月30日讯)2023年8月29日,TCL正式在海外发布两款为用户视觉护航的全新手机——TCL 40 NXTPAPER和TCL 40 NXTPAPER 5G,其采用了TCL独家的“未来纸”(NXT...
关键字:
TCL
手机
PAPER
GB
为了加强北美管理团队,扩大北美市场,HRS任命旅行科技高管Will Pinnell为高级副总裁企业旅行采购专家Pauline Robin为采购咨询与供应商关系副总裁。 德国科隆和纽约2023年8月14日 /美通社/ -...
关键字:
RS
PI
GB
BCD
上海2023年2月27日 /美通社/ -- 2月24日,国际独立第三方检测、检验和认证机构德国莱茵TUV大中华区(以下简称"TUV莱茵")为梅菲特(北京)涂料有限公司旗下的都芳植物基环保内墙漆...
关键字:
CHINA
MARK
BSP
GB
适合企业备份与虚拟化应用 上海2023年2月20日 /美通社/ -- 存储、网通及运算解决方案的创新厂商威联通®科技 (QNAP®) 推出新款TS-1655桌上型大容量2.5GbE NAS,提供可装载1...
关键字:
GB
5G
NAS
SSD
深圳2023年1月11日 /美通社/ -- 相比消费级硬盘(HDD),消费级固态硬盘(SSD)凭借传输速度快、低功耗、稳定性强、重量轻等优势已成为更主流的选择。但随着PC用户使用场景越来越丰富,日常办公学习、运...
关键字:
SSD
PC
固态硬盘
GB
北京2022年12月26日 /美通社/ -- 2022年12月25日,CIAA在线举行2022年度CIAA团体标准发布会,向社会公开发布了T/CIAA 103.2-2022《抗菌技术规范 第2部分:防霉/抗真菌产品》、T...
关键字:
GB
ISO
BSP
测试方法
北京2022年12月20日 /美通社/ -- 伴随牛顿力学体系的建立而诞生的近代科学,开辟了一个全新的时代改变了人类的生产生活和思维方式,对人类社会的发展进程产生了深远的、革命性的影响。时至今日,科技创新也依然是影响和改...
关键字:
分布式
节点
带宽
GB
为游客提供全天候互动信息及导游服务 香港2022年12月15日 /美通社/ -- 紧贴世界不断进步的潮流和胍搏,香港大富翁梦想世界™将与诺达科技机械人(Novelte Robotics)携手推出机械人管家服务,在主题体...
关键字:
BSP
LTE
NOVEL
GB
厦门2022年12月12日 /美通社/ -- 近日,珍妮花晴雨科技(上海)有限公司(以下简称“珍妮花”)的抗烈风伞(产品型号:ZNHCMKF22-001)获国际独立第三方检测...
关键字:
CHINA
MARK
GB
供应链
11月10日,瑞安办公全新发布可持续创新方案,同时携手LEED 绿色建筑及城市评价体系的创立机构美国绿色建筑委员会(U.S Green Building Council, USGBC)于瑞安广场签署首发办公楼深绿租赁。瑞...
关键字:
BUILDING
GREEN
空调
GB
美国智能设备公司NUU宣布推出其首款5G智能手机NUU B20 5G。B20 5G可接入美国各地铺开的5G网络,并具有下一代Dimensity处理器的强大性能。B20 5G具有6.5英寸高分辨率FHD+显示器,90Hz刷...
关键字:
处理器
5G智能手机
GB
RAM
《2022年粤港澳大湾区创新力发展研究报告》、《2022年度粤港澳大湾区创新力企业案例》在2022年粤港澳大湾区创新经济高峰论坛 -- 湾区科技与产业创新主题论坛上同步发布 广州2022年11月4日 /美通社/ --&...
关键字:
GB
AI
BSP
大会所接受的报告材料将展示百济神州针对B细胞恶性肿瘤和髓系白血病所开展的广泛而深入的临床开发项目 15篇被大会接受的摘要中包括涉及重磅的BTK抑制剂百悦泽®和富有前景的Bcl-2抑制剂BGB-114...
关键字:
神州
BSP
GB
AI
(全球TMT2022年11月3日讯)近日,国家标准GB/T 35770-2022《合规管理体系 要求及使用指南》正式发布。该标准等同采用ISO 37301:2021,实施后全部代替 GB/T 35770-2017。SG...
关键字:
GB
ISO
中国移动
中国电信
北京2022年11月3日 /美通社/ -- 近日,国家标准GB/T 35770-2022《合规管理体系 要求及使用指南》正式发布。该标准等同采用ISO 37301:2021,实施后全部代替 GB/T...
关键字:
GB
ISO
BSP
中国移动
济南2022年10月31日 /美通社/ -- 近日,《新型智慧城市评价指标》(GB/T 33356-2022)(以下简称《评价指标》)经市场监管总局(标准委)批准发布,将于2023年5月1日起正式实施。中国电子技术标准化...
关键字:
智慧城市
新基建
评价指标
GB
(全球TMT2022年10月31日讯)近日,《新型智慧城市评价指标》(GB/T 33356-2022)经市场监管总局(标准委)批准发布,将于2023年5月1日起正式实施。中国电子技术标准化研究院、国家信息中心、中国信息...
关键字:
智慧城市
评价指标
GB
中国电子
Meta Quest Pro定于本月25日面市,定价1500美元。零售包装内含头戴装置,Quest Touch Pro手柄,充电底座,压感笔尖(手柄附件),部分遮光罩(另有全遮光罩可选)。开发单位宣称Meta Quest...
关键字:
ST
AN
传感器
GB
今晚RTX 4090显卡解禁了,有关性能测试的部分大家看得差不多了,这一代显卡让很多人有些担忧的是功耗,TGP提升到了450W,比上代提升了100W,而且散热器非常夸张。而且官方建议配备850W电源,部分AIC的非公版显...
关键字:
显卡
电源
GB
佛山2022年9月26日 /美通社/ -- 近日,美的工业城西区项目同时荣获LEED、WELL金级认证。9月16日,美的工业城西区LEED ID+C 金级认证授牌仪式在西区举行,美国绿色建筑委员会(USGBC)北亚区董事...
关键字:
美的
BUILDING
电梯
GB