码迷,mamicode.com
首页 > 其他好文 > 详细

快速理解编码,unicode与utf-8

时间:2018-10-02 22:30:58      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:关系   出现   映射   联网   编码   简单   tps   字节流   需要   

1.为什么编码,因为cpu只认识数字
2.ASCII 一个字符共占7位,用一个字节表示,共128个字符
3.那么ASCII浪费了最高位多可惜,出现了
ISO-8859-1,一个字节,256个字符,很多协议的默认编码
4.中文编码
GB2132 两个字节,大陆使用,表示约6k个字符
BIG5 两个字节,繁体字编码标准,共表示1.3w个字符
GBK 扩展了GB2132,能表示2w个汉字,不兼容BIG5

Unicode
又称万国码,源于一个组织,一共有两个组织,都是为了构建出一种能表示地球所有字符的编码,其中一个就是unicode,unicode是准确说是一个字符表,每个字符对应一个数字,称为码点,兼容ACSII,即a对应数字96,目前来说16位长度还未占满,所以有人说unicode字符占两个字节,这绝对是一种误解,unicode只是定义了哪个字符对应哪个数字,就这么简单。

java与unicode
java中为了存储字符时统一映射关系,存储与编码无关的unicode码点,不然一会存一个gbk字符,又来一个big5字符,连打印字符串都有问题了。

utf
那么unicode只是定义映射关系的话,具体怎么存储,用几个字节存呢
目前有ucs和utf两种思路。
utf-8 因为节省流量,互联网用的较多
用1,2,3,4个字节存储一个字符,通常来说英文字符一个字节,汉子三个字节
具体格式参考链接
uft16与bom
采用2.4字节存储,那么为了区分高字节在前还是在后,就需要在字节流前加特殊的BOM字节表示,utf8不需要bom,只是微软有这个习惯。

更加详细的描述推荐  https://www.cnblogs.com/leesf456/p/5317574.html

快速理解编码,unicode与utf-8

标签:关系   出现   映射   联网   编码   简单   tps   字节流   需要   

原文地址:https://www.cnblogs.com/lshao/p/9738041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!