问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

字符集编码(四):UTF

发布网友 发布时间:2024-10-09 05:57

我来回答

1个回答

热心网友 时间:2024-11-16 20:55

UTF,全称Unicode Transformation Format,是一种将Unicode字符集编码为二进制格式的方法,分为UTF-16、UTF-8和UTF-32三种变体。每种编码方式通过不同的码元宽度来存储字符,以适应Unicode的广泛字符集需求。

UTF-16是Unicode最初的设想,最初设计为16位定长编码,但为了容纳全球所有字符,它进行了改良,采用了变长编码策略。在UTF-16中,基本平面的字符仅占用1个码元,而补充平面则需要2个码元。编码规则中,高位码元用6位表示,能够区分1024个数值,以此来标志码元是单个字符还是组合。UTF-16的编码范围可以达到10FFFF,对于超过此范围的Unicode值,会用两个码元来表示,确保每个码元至少包含10位数据。


在编码过程中,Unicode为BMP(基本多文种平面)保留了D800~DFFF(共2048个值),作为UTF-16的专用区域,这些值被分为高位代理和低位代理,用于扩展平面字符的表示。高位代理以110110开头,低位代理以110111开头,通过这种方式处理BMP之外的字符编码。


举例来说,遇到01010101 01001010(单码元)和11011000 01000000(高位代理)11011100 00000000(低位代理)的组合,会解析出不常见的汉字。Unicode码点U+20000的映射采用数学公式,通过将X-10000除以400取整再与D800和DC00组合,实现代理对的编码。


原计划采用双字节编码的Unicode,因考虑到与ASCII的兼容性,最终选择了UTF-8。UTF-8使用1到4个字节来表示Unicode,通过标识位区分字符的字节数,ASCII字符仅需1字节。它的逻辑是:最高位为0表示ASCII字符,其他情况根据标识位来解析不同数量的字节。UTF-8通过最高位区分单字节字符(1位)和多字节字符(首字节11,后续字节10),高位连续1的个数指示字符字节数,如编码的"啊"汉字,就由三个字节组成。


在存储和共享文本时,大小端问题至关重要。UTF-16和UTF-32存在大端(BE)和小端(LE)格式,分别以高位或低位在前为序。例如,UTF-16BE用FE FF表示大端,FF FE表示小端。为了避免混淆,U+FFFE已被弃用。UTF-8编码通常不使用BOM(字节顺序标记),但某些文件可能会使用EF BB BF来标记。PHP解释器在处理UTF-8 BOM时可能存在问题,如解析错误或Cookie设置失败,因此推荐PHP文件以UTF-8无BOM格式保存。对于了解字符集编码的完整旅程,可以参考以下链接:



《字符集编码(上):Unicode 之前》
《字符集编码(补):字符编码模型》
《字符集编码(中):Unicode》
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黄山门户网主要栏目 壹家居品牌简介 湖南乐享生活家居有限公司一站式毛坯房解决方案 服务器出租 电脑上的时间日期不同步怎么办 台式电脑时间不同步怎么解决? 关于清明节的小学作文400字 微信怎么查询自己名下的微信 如何查看微信实名认证了几个账号 轿车120时速撞击力有多大? EASCII字符 是否只有255个?& #65306; 这个是什么 - 技术问答_百度... 字符集和字符编码的来龙去脉 光绪元宝文十二制当是户部的单龙,值多少钱啊! 追书神器缓存的小说在哪里? acca要考几门? 小孩淋巴结肿大不疼无任何不适但几年都不消退怎么办,能消退吗? 耳后淋巴结肿大不疼不痒怎么办 脖子上淋巴结肿大不疼是不是癌 为什么用无线手机能定位,用流量就不行? 小米1s使用wifi上网用百度地图就可以定位,使用手机上网流量上网用百度... 我手机陌陌距离用WIFI时准确,用流量就差远了,怎么回事 陈翔的前任女友是谁 陈翔现在的女朋友是谁? 为什么手机gps用无线网能用,用数据流量就找不到位置了 用数据流量打开... 陈翔的女朋友是谁?陈翔多了岁了? 陈翔女朋友李珊珊 陈翔网上那个女友周珂是真的假的,但是陈翔说过他是单身? xbox360有捉鬼敢死队2吗?好玩不 龟头上都是小红点,不痛不痒,在吃氧氟沙星片,擦红霉素软膏,两天感觉没好 ... ...又眼一直单眼皮 可是不知为什么这两天右眼变双眼皮了 好几天都... 口腔溃疡加重了颈上张淋巴结,摸着痛,会是结核病吗 颈上淋巴挂什么科 口腔溃疡加重了颈上张淋巴结,摸着痛,会是结核病吗? ...插入已有页码再插入其他页码 怎么弄啊 例如 已有1、2、3页,到第三... ...依次插入页码1,2,3。。。前三页是目录不插入,怎么做呢 插在页脚处... UN38.3认证报告和鉴定书的有效期各是多久? ...如何在第三页插入页码(即第一页),前2页不要的,我的OFFICE是2007的... 起名字大全女孩朱姓,出生日期2011年12月2日阴历十一月初八下午16点28... 2024年八月十八出生朱姓女孩名字 文科高等数学基础A内容简介 大学文科数学实验高等数学图书简介 文科高等数学图书目录 口腔溃疡会引起下颌淋巴结肿大吗? 口腔溃疡牙龈肿大会引起下巴淋巴肿大疼吗 泸州川铁公园锦庐多少钱一平方? ,日,字能加偏旁吗?请大家告诉我,加在前面 泸州诚信上林苑多少钱一平方? 口腔溃疡会不会引起附近的淋巴结肿大?口腔溃疡好了肿痛感就变轻消失... 泸州阳光印江山多少钱一平方? 口腔溃疡好了为什么引起的脖子之上的淋巴肿大还没好要多久会好,不痛...