范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一文带你搞懂字符集编码

  软件开发人员经常遇到"中文乱码"、"软件不能显示日文"等类似问题。真相只有一个——对字符集编码没有一个系统的认知。
  常见字符集编码有GB2312、GBK、BIG5、UTF-8、UTF-16,甚至有些从事MFC开发的人可能还会说字符集有ANSI和UNICODE。真的是这样吗?直接上干货。
  字符集分类1. ANSI
  American National Standards Institute 美国国家标准学会,由这个标准学会制订的一种编码规则。采用多字节系统 (MBCS) 的变长编码,每个字符可以是单个字节、双字节,也可以是多字节的;兼容单字节字符集 (SBCS) 和双字节字符集 (DBCS);兼容 EUC/EUC-CN 双字节编码。由于兼容了这个编码,那么 ANSI 的双字节编码也是大端存储 (Big Endian) 的了;不同的国家和地区可以使用不同的编码规则,这些编码对应到这些国家和地区的代码页 (Code Page) 上。 1.1. ASCII编码
  ASCII编码即美国信息交换标准代码(American Standard Code for Information Interchange)是一套共有128个字符的编码,它基于阿拉丁字母,主要作用是用来表示英语和西欧语言字符。ASCII规范编码第一次公布于1967年,ascii码在1986年完成最后一次更新。ASCII码对照表等同于国际标准 ISO/IEC 646,ASCII码对照表是世界最通用的信息交换标准。
  ASCII编码1.2. GB2312编码
  GB2312简体中文编码,一个汉字占用2个字节,在大陆是主要的编码方式,兼容ASCII编码。
  为了支持繁体字,于是推出了GBK编码,GBK是国标扩展(Guo Biao Kuozhan)编码的缩写,兼容GB2312。
  为了支持少数名民族的文字,于是推出了GB1803,解决了中文、日文、朝鲜语等的编码,兼容GBK。
  中文编码2. UNICODE编码
  Unicode又称为统一码、万国码、单一码,是国际组织制定的旨在容纳全球所有字符的编码方案,包括字符集、编码方案等,它为每种语言中的每个字符设定了统一且唯一的二进制编码,以满足跨语言、跨平台的要求。
  Unicode字符集被划分为 17 个平面(即,17个区,编号为 0-16 ),且具有以下特点:每个平面有216 = 65536个代码点,因此,整个Unicode字符集共有17 × 65536 = 111 4112 个码点。整个Unicode字符集的码点空间为U+000000 ~ U+10FFFF每个平面的码点范围可表示为U+xx0000 ~ U+xxFFFF,其中xx表示16进制的0x00到0x10,比如,平面0的码点范围为U+000000 ~ U+00FFFF,平面2的码点范围为U+020000 ~ U+02FFFF,平面15的码点范围为U+0F0000 ~ U+0FFFFF再次注意:并不是每个码点就一定对应有一个字符,因为,目前Unicode字符集中有很多码点都还未被使用。
  Unicode 17 层平面
  2.1. UTF-16编码
  UTF-16编码源于UCS-2,是Unicode最早的编码方式。UCS-2编码仅覆盖了基本平面(即BMP,第0平面)中的码点,使用固定的两字节将字符编号(类似于Unicode中的码点值)直接映射为字符编码,中间未经过任何的编码算法转换。很明显,16位的二进制位(范围为0x0000 ~ 0xFFFF)无法表示Unicdoe引入的增补平面中的码点(平面1 ~ 16,码点范围为0x10000~0x10FFFF),为此,Unicode在UTF-16编码中使用"代理(代替)机制"来解决这个问题,代理机制使用4个字节来表示增补平面中的码点,从而使UTF-16成为一种变长编码方式。
  因此,若软件仅支持UCS-2编码,则意味着仅支持UCS字符集或Unicode字符集基本平面中的字符,而不支持增补平面中的字符。
  UTF-16编码后的码元序列在映射为物理意义上的字节序列时,又分为UTF-16BE (大端序),UTF-16LE (小端序)两种情况,大端序和小端序又分为带有字节序标记(with BOM)和不带字节序标记(without BOM)两种情形。比如,"ABC"这三个字符的UTF-16编码(码元序列)为:00 41 00 42 00 43;其对应的各种字节序列如下表所示:
  "abc"的各种UTF-16编码2.2. UTF-32编码
  UTF-32是一种将Unicode字符编码的协定,对每一个Unicode码位使用恰好32位元。其它的Unicode transformation formats则使用不定长度编码。因为UTF-32对每个字符都使用4字节,就空间而言,是非常没有效率的。特别地,非基本多文种平面的字符在大部分文件中通常很罕见,以致于它们通常被认为不存在占用空间大小的讨论,使得UTF-32通常会是其它编码的二到四倍。虽然每一个码位使用固定长定的字节看似方便,它并不如其它Unicode编码使用得广泛。
  与UTF-16一样,也存在大端和小端存储。2.3. UTF-8编码
  UTF-8编码是Unicode编码的一种编码形式。由1-6个字节表示一个字符,兼容ASCII编码。
  UTF-8编码3. MFC中的字符集
  MFC字符集选择多字节编码时,对应的编码是GBK编码
  MFC字符集选择Unicode编码时,对应的编码是UTF-16编码。4. QT中的字符集
  QString是按UTF-16存储的。
  1、当选择UTF-8编码时,QString构造函数的参数对应UTF-8编码(默认设置)。QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(codec); QString str = "右边是UFT-8编码的字符串";
  2、当选择GBK编码时,QString构造函数的参数对应GBK编码。QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(codec); QString str = "右边是GBK编码的字符串";
  3、QString也可以指定编码赋值。QString str1 = QString::fromLocal8Bit("GBK编码字符串"); QString str2 = QString::fromUtf8("UTF-8编码字符串");
  QString 指定编码赋值接口

俗语人过五十五,要有三种苦,到底是哪3苦?有无道理?曾经在老家听到老人们在一块聊天的时候,聊到过这样一句俗语,叫做人过五十五,要吃三种苦老话讲五十而知天命,一个人到了五十岁,就已经触碰到了天命,本来就很迷茫,很抑郁了,为什么还要再吃18年河北恶霸强暴人妻被反杀,警方故意杀人,检察院无罪释放文大鹏说史编辑大鹏说史o前言o2018年5月20日晚上10点多,河北邢台市的一个小村庄,一个黑影从墙头一跃而下,随后便传出扭打嘶吼的声音,这场打斗声持续将近半个小时才逐渐安静下来,男生捐精全过程,挣5000块就那么简单?大家好,我是专业研治男科的侯医生,很高兴在头条认识大家。应广大男性朋友邀约,工作之余,我会抽时间,把自己在男科研治方面,所遇到的真实故事和诊疗案例分享给大家。今天就给大家浅说一件事双面乌克兰乌克兰曾经是世界排名第三的军事强国。冷战时期,美国也好,前苏联也好,他们都互相盯着对方,那会卫星技术还不够发达,所以多用侦察机拍照,确定对方哪有核弹发射井。SS18导弹。冷战时期最与乌克兰闹翻,朝鲜最先进客机面临囧境上周朝鲜宣布承认卢甘斯克和顿涅茨克政权,乌克兰随即宣布断交并表示将进行制裁。普通人可能认为这两家没什么经济往来,但飞友们很清楚朝鲜高丽航空使用的安148飞机,是乌克兰的!图高丽航空美媒警告乌克兰战事即将进入最危险阶段俄乌冲突爆发到现在已经将近五个月的时间,目前来看,双方想要在短时间内缓和局势显然不太可能。近日一家美国媒体警告冬天是俄罗斯的朋友,而乌克兰战事也即将进入最危险的阶段。美媒警告称冬天横店女网红翻车!被曝伪造群演身份骗流量,牵扯肖战杨紫等人剧组为了流量突破下限导致翻车的网红不少,但也是没想到,连在横店做群演的网红都能因为涉嫌造假而翻车。最近知名横店网红云子团团和她的朋友们就接连被扒,被曝伪造群演身份骗流量,还牵扯到了肖战中国包揽7冠,日本0冠?马龙陈梦领衔8大主力,WTT冠军赛开赛北京时间7月18日消息,2022年国际乒联WTT冠军赛WTT支线赛,今天下午在布达佩斯开赛。马龙梁靖崑王楚钦林高远陈梦孙颖莎王曼昱王艺迪等8大主力携手出战。这两项赛事,共有7个冠军这些睡姿让你越睡越累,不仅伤害颈椎,还可能长细纹羿阁发自凹非寺量子位公众号QbitAI睡觉,原本是给身体充电的过程。但你有没有过这样的感觉一觉醒来不仅没有身心放松,反而感觉浑身疲累,甚至腰酸背痛?在央视最新的健康之路节目中,30又一模范夫妻要离婚?恩爱16年,被曝早已分居,他们终于装不下去枕边阅读2022年虽然才过去一半的时间,娱乐圈已经有多对明星夫妻宣布离婚。明星离婚,对于吃瓜网友们来讲已经成为大概率事件。最近又有一对恩爱16年的明星夫妻被曝离婚了!任谁也没想到,他一直在积极治疗乙肝,为什么还是得了肝硬化呢?面色苍白的老王住进了医院,他是因为消化道出血导致的贫血来院治疗的。入院前几天,老王就发现自己的大便颜色发黑,并且乏力,没有精神,但是并未在意。在住院的前一天,出现了吐血,才重视起来
2022下半年选什么手机?内行人只推荐这3款,配置齐全,流畅用5年2022下半年选什么手机?内行人只推荐这3款,配置齐全,流畅用5年第一款vivoX803679起5000W像素索尼IMX866超大底主摄加持的蔡司T光学镜头,拍照非常给力。有一颗支10年之后,增程式电动车和混动汽车可能会消失当下什么领域最火?答案就是新能源车领域,所有企业家闻风而动,准备在此攫取人生中最大的一笔财富。就连做手机取得巨大成功的雷军也忍不住再创业一次。所有人都知道,当前的新能源车领域出现的小而美的锂电领域成长股!新能源汽车高镍产品已开始稳定供货写于2022。9。22深夜今日军工大飞机条线继续卷土重来,前期大飞机龙头润贝航科四连板后今日再度封板,前面反复提过的趋势业绩股派克新材虽处高位但同样非常坚挺。再有一个现象就是多只核工信部统筹新能源汽车产业布局,引导各地差异化协同发展工业和信息化部23日举行新时代工业和信息化发展系列主题新闻发布会第十场,主题是主动服务和融入新发展格局促进制造业区域协调发展。工业和信息化部规划司司长王伟在答记者问时表示,党的十八新能源车主直呼养不起电动爹,特斯拉理想提供数千元车险补贴记者吕文琦编辑进入8月后,新能源巨头纷纷开始向车主提供数千元的保险补贴。界面新闻从特斯拉销售人员处得知,自2022年9月16日起至2022年9月30日之间交付的所有全新展车及非全新广汽杀出一匹新能源快充独角兽前段时间,广汽董事长曾庆洪笑称在给电池厂商打工,可见电池厂商在新能源车产业链中有多大的话语权,也难怪这会儿大佬们都纷纷将目光瞄向了这个赚钱的赛道。近日,动力电池公司广州巨湾技研有限打造柠檬混动DHT,长城汽车剧透新能源布局中青报中青网记者许亚杰近年来,由于油价上涨减排压力增大等原因,混合动力汽车市场迅速升温。为此,自主车企集体加大了在混合动力领域的技术投入,并试图向消费者诠释混动这一技术路线的优点。汽车智能化发展趋势深度解析找到爆发力与空间兼具的7大赛道(报告出品方作者申万宏源研究,屠亦婷戴文杰)1变革当下是汽车智能化变革大时代1。1复盘汽车产品的变革本质上是追求人的解放智能驾驶与智能座舱车联网,本是两条完全独立的技术路线,经过了35。88万元起!一汽红旗首款MPV上市,未来三年加码布局新能源每经记者段思瑶每经编辑裴健如国内MPV市场销量连续四个月环比增长之下,新参与者正不断涌入。9月21日,一汽红旗首款MPV车型红旗HQ9上市,售价区间为35。88万53。88万元。图为什么曲面屏手机越来越多了?业内人士透露成本大幅下降文名动科技不知道大家有没有发现,现在的曲面屏手机越来越多了。除了苹果以外,其它厂商几乎都用上了曲面屏设计,而且从旗舰价位普及到了中端甚至入门级价位,可谓是任意价位都不放过。而之所以高成长企业丨瑞恩科技打破信息孤岛,破解企业数字化转型不会转痛点作者丨程浩编辑丨于长洹图瑞恩科技创始人兼CEO吴成锐走进广东瑞恩科技有限公司(以下简称瑞恩科技)研发中心,大厅内一款瑞云智造IOT产品格外引人注目,数字大屏通过实时的数据采集,可以