帮助有志向的年轻人通过努力学习获得体面的工作和生活

全国免费咨询电话 : 400-609-2893

UTF-8和UTF-16是什么?有哪些区别?老男孩Linux运维

老男孩IT教育

常见问题

2021年10月14日 16:36

大部分人认为计算机是万能的,殊不知其实计算机只认识01这样的字符串,为了让大众理解的更清楚,后来就用十进制、八进制、十六进制来进行表示,实际都是一样的,只不过转换成进制方便我们查看和使用,UTF-8和UTF-16就是这样的存在,那两者有何区别呢?请看下文:

       大部分人认为计算机是万能的,殊不知其实计算机只认识01这样的字符串,为了让大众理解的更清楚,后来就用十进制、八进制、十六进制来进行表示,实际都是一样的,只不过转换成进制方便我们查看和使用,UTF-8和UTF-16就是这样的存在,那两者有何区别呢?请看下文:

Linux运维培训

       | UTF-8

       编码规则较简单,如果只有1个字节,那最高比特位为0,如果有多个字节,那么第1个字节从最高位开始,连续有几个比特位的值为1,剩下的字节均以10开头,具体表现形式为:

       0xxxxxxx:单字节编码形式;

       110xxxxx 10xxxxxx:双字节编码形式;

       1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式;

       11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式。

       优势在于没有字节序的概念,非常适用于字符串的网络数据传输,不需要考虑大小端问题,对于非英文网页,可以有效避免各种乱码问题。

       | UTF-16

       使用2个或4个字节进行存储,对于Unicode编号范围在0~FFFF之间的字符,UTF-16使用2个字节存储,不需要进行编码转换,跟UTF-32类似,对于Unicode编号范围在10000~10FFFF之间的字符,UTF-16使用4个字节存储。

       优势在于常用字符都可以使用2个字节表示,所以在Windows操作系统上,特别适合使用wchar_t作为字符串的存储基类型,1个wchar_t表示1个字符,操作起来非常方便。

       关于"UTF-8和UTF-16是什么?有哪些区别?"的话题到这里就结束了,老男孩教育10年技术沉淀,真实案例结合理论授课,使学员更好的过渡到工作岗位,想深入的学习Linux云计算运维的知识,可以关注下老男孩教育。

       推荐阅读:

       【微服务技术】Docker中有哪些常用命令?Docker命令详解

       在Linux终端界面如何一次执行多个命令?Linux运维培训

       面试必问的Linux命令新鲜出炉啦!老男孩Linux运维培训

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。