[导读]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
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
北京 2025年6月23日 /美通社/ -- 福建升腾资讯有限公司(简称升腾)日前曝光了一款新品国产信创笔记本电脑——M460 2。这是升腾基于兆芯开先KX-7000处理器推出的首款笔记本,加上此前的P410 2台式机...
关键字:
笔记本电脑
处理器
GB
CPU
深圳2025年4月24日 /美通社/ -- 4月23日,2025上海国际车展盛大启幕,全球汽车产业的目光聚焦于这场科技与创新的盛宴。在众多展示亮点中,汽车AI+应用无疑是最大的热点之一,“驾控超级大脑”技术概念、车机交互...
关键字:
GB
EMMC
Flash
PS
上海2025年3月13日 /美通社/ -- 半导体行业作为全球科技产业的核心驱动力,近年来在复杂环境中呈现波动式增长。据SEMI(国际半导体产业协会)数据显示,2023 年全球半导体市场规模约 5200 亿美元...
关键字:
芯片产业
AI
EDA
GB
深圳2025年3月6日 /美通社/ -- 西班牙时间3月3日至6日,江波龙首次亮相巴塞罗那MWC2025,以"PTM赋能世界移动通信"为主题,携一系列创新存储产品参展,引发广泛关注。 作为半导体存储...
关键字:
移动通信
黑科技
SSD
GB
深圳2025年2月20日 /美通社/ -- 1月,江波龙推出了7.2mm×7.2mm的超小尺寸eMMC*,为AI智能穿戴设备的物理空间优化提供了全新的存储解决方案。继这款创新封装存储产品问世后,江波龙再次推出穿戴存储力作...
关键字:
智能穿戴
智能穿戴设备
EMMC
GB
深圳2025年1月24日 /美通社/ -- 在智能穿戴设备的设计中,每一毫米都至关重要。随着AI技术的深度融入,智能穿戴设备不仅需要更强大的性能,还需要在极其有限的空间内实现更多功能。近日,江波龙推出了7.2mm&tim...
关键字:
EMMC
智能穿戴设备
TIMES
GB
北京2024年10月28日 /美通社/ -- 10月26日,铭瑄在北京金隅喜来登酒店举办了一场大型发布会,推出了以"智•竞未来"为主题的高性能800系列主板。该系列共有12款创新型号,彰显了铭瑄将自然美学与尖端科技完美融...
关键字:
IC
英特尔
GB
5G
为AI服务器与数据中心带来容量/带宽/速度三合一升级 全新架构以PCIe Gen5带宽突破计算僵局,E3.S 2T规格为系统扩充增添弹性 深圳2024年9月5日 /美通社...
关键字:
内存模块
带宽
GB
CPU
深圳2024年8月28日 /美通社/ -- 8月27日至29日,江波龙携旗下行业类存储品牌FORESEE亮相ELEXCON2024深圳国际电子展,展示其在存储领域的最新技术成果。在此次展会上,江波龙首次提出PTM(存储产...
关键字:
电子
GB
SE
FOR
北京2024年8月23日 /美通社/ -- 近日,浪潮信息发布源2.0-M32大模型4bit和8bit量化版,性能比肩700亿参数的LLaMA3开源大模型。4bit量化版推理运行显存仅需23.27GB,处理每token所...
关键字:
模型
显存
GB
3G
总收入达9.29亿美元,同比增长56%;GAAP经营亏损下降,实现非GAAP经营利润盈利 百悦泽®全球销售额达6.37亿美元,同比增长107%,增强在血液学领域中的领先地位;BCL2抑制剂sonrotoclax...
关键字:
神州
BSP
GB
ADS
美国旧金山和中国苏州2024年8月2日 /美通社/ -- 信达生物制药集团(香港联交所股票代码:01801),一家致力于研发、生产和销售肿瘤、自身免疫、代谢及心血管、眼科等重大疾病领域创新药物的生物制药公司,苏州圣因生物...
关键字:
SI
血压
GB
TE
北京2024年7月25日 /美通社/ -- 近日,SGS通标标准技术服务有限公司(以下简称:SGS)对世界综合乐器制造商雅马哈(YAMAHA)旗下全系列乐器产品依据新乐器国家标准GB 28489-2022以及中国RoHS...
关键字:
YAMAHA
测试
GB
BSP
台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...
关键字:
AMD
内存
BSP
GB
(全球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
测试方法