utf8与unicode,ascii码有什么区别和关系 |
您所在的位置:网站首页 › b的ascii码是什么 › utf8与unicode,ascii码有什么区别和关系 |
ASCII与Unicode都是是一种字符集,Unicode兼容了ASCII的字符集,它定义了每个字符的唯一编号,而UTF-8是一种编码方式,它将Unicode中的字符编码成字节序列以便存储和传输。 具体来说,Unicode定义了每个字符的唯一编号,而UTF-8则使用1到4个字节来表示这些编号。UTF-8编码方式可以在不同的平台和系统之间共享,并且可以在传输过程中自动检测和纠正错误。 Unicode,全称为Unicode标准(The Unicode Standard),其官方机构Unicode联盟所用的中文名称为统一码[1],又译作万国码、统一字元码、统一字符编码[2],是信息技术领域的业界标准,其整理、编码了世界上大部分的文字系统,使得电脑能以通用划一的字符集来处理和显示文字,不但减轻在不同编码系统间切换和转换的困扰,更提供了一种跨平台的乱码问题解决方案。 Unicode伴随着通用字符集ISO/IEC 10646的标准而发展,同时也以书本的形式[3]对外发表。Unicode至今仍在不断增修,每个新版本都加入更多新的字符。目前最新的版本为2022年9月公布的15.0.0[4],已经收录超过14万个字符(第十万个字符在2005年获采纳)。 Unicode最普遍的编码格式是和ASCII兼容的UTF-8,以及和UCS-2兼容的UTF-16。 具体举例: 例如ASCII 中的 A : 对应10进制:和二进制 65 01000001 如果unicode放数据就是这样的: 00000000 00000000 00000000 01000001 那么其中4个字节,只有1个字节有有效内容,另外三个字节被白白浪费了。因此utf-8的编码方式就可以很好的节约空间: utf8编码规则: 编码规则对于UTF-8编码中的任意字节B,如果B的第一位为0,则B独立的表示一个字符(ASCII码); 如果B的第一位为1,第二位为0,则B为一个多字节字符中的一个字节(非ASCII字符); 如果B的前两位为1,第三位为0,则B为两个字节表示的字符中的第一个字节; 如果B的前三位为1,第四位为0,则B为三个字节表示的字符中的第一个字节; 如果B的前四位为1,第五位为0,则B为四个字节表示的字符中的第一个字节; 举例我们在golang中打印 我 字对应的 unicode 和 utf8编码后的样子: 其中utf8就是用3个字节,按照 高位 1110开头,后面两个字节 按照10开头存储的unicode中的“我”字符对应的utf8编码; 那么看到这里 大家理解了吗? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |