unicode、utf区别

字符集

首先,我们要明确2个概念,字符集和字符编码。
字符集:ASCII、GB2312、GBK、Unicode
字符编码:UTF-8、UTF-16、UTF-32
由于ASCII、GB2312、GBK不需要转化,字符编码就是自己

字符集字符编码字节字符个数
ASCIIASCII1(00到7F)127
GB2312兼容ASCII2(0xA1A1-0x7E7E)6763个汉字以及682个特殊符号
GBK兼容GB23122(8140-FEFE)汉字和图形符号21886个
UnicodeUTF-8、UTF-16、UTF-322(0000到FFFF)65535
Unicode32UTF-8、UTF-16、UTF-324(00000000到FFFFFFFF)理论上42亿,接近无限,满足所有字符需求

相比于其他特地字符集,Unicode是大一统,初衷是涵盖世界上所有的字符集。

字符编码

UFT-8:一种变长的编码方案,使用 1~6 个字节来存储;
UFT-32:一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储;
UTF-16:介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变。

相比于Unicode固定字符的编码,UTF-8可以动态调整编码字节数,例如’a’在Unicode是2个字节,而UTF-8编码后是1个字节,在网络传输方面非常有优势。

在这里插入图片描述

当需要在内存中读取文件的时候,此时将utf-8编码的内存转换为unicode编码,在内存中进行统一处理;当需要保存文件的时候,出于空间和传输效率的考虑,此时将unicode编码转换为utf-8编码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值