Unicode、UTF-8 和 ISO8859-1等编码方式
来源:互联网 发布:大富豪3.4源码 编辑:程序博客网 时间:2024/05/17 08:08
【1】编码基本知识
最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。
① ISO8859-1 通常叫做Latin-1;
② GB2312/GBK;
③ unicode;
④ UTF。
以”中文”两个字为例。
经查表可以知道其GB2312编码是”d6d0 cec4”,Unicode编码为”4e2d 6587”,UTF编码就是”e4b8ad e69687”。
注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来”表示”。
8个二进制位表示一个字节,即 1Byte = 8bit;四个二进制位表示一个16进制位;三个二进制位对应一个8进制位。
GB2312使用两个字节表示一个中文字符。UTF使用三个字节表示一个中文字符(统一使用的16进制)。
【2】ISO8859-1
属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母a的编码为0x61=97。
很明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用 iso8859-1编码来表示。而且在很多协议上,默认使用该编码。
比如,虽然”中文”两个字不存在iso8859-1编码,以gb2312编码为例,应该是”d6d0 cec4”两个字符,使用iso8859-1编码的时候则将它拆开为4个字节来表示:”d6 d0 ce c4”(事实上,在进行存储的时候,也是以字节为单位处理的)。而如果是UTF编码,则是6个字节”e4 b8 ad e6 96 87”。很明显,这种表示方法还需要以另一种编码为基础。
【3】GB2312/GBK
这就是汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编码)。
其中gbk编码能够用来同时表示繁体字和简体字,而 gb2312只能表示简体字,gbk是兼容gb2312编码的。
【4】unicode
这是最统一的编码,可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。
所以可以说它是不兼容iso8859-1编码的,也不兼容任何编码。不过,相对于iso8859-1编码来说,uniocode编码只是在前面增加了一个0字节,比如字母a为”00 61”。
需要说明的是,定长编码便于计算机处理(注意GB2312/GBK不是定长编码),而unicode又可以用来表示所有字符,所以在很多软件内部是使用 unicode编码来处理的,比如java。
【5】UTF
考虑到unicode编码不兼容iso8859-1编码,而且容易占用更多的空间:因为对于英文字母,unicode也需要两个字节来表示。
所以unicode不便于传输和存储。因此而产生了utf编码,utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字符,不过,utf编码是不定长编码,每一个字符的长度从1-6个字节不等。
另外,utf编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节。
注意,虽然说utf是为了使用更少的空间而使用的,但那只是相对于unicode编码来说,如果已经知道是汉字,则使用GB2312/GBK无疑是最节省的。
不过另一方面,值得说明的是,虽然utf编码对汉字使用3个字节,但即使对于汉字网页,utf编码也会比unicode编码节省,因为网页中包含了很多的英文字符。
- Unicode、UTF-8 和 ISO8859-1等编码方式
- Unicode、UTF-8 和 ISO8859-1等常用编码方式
- Unicode、UTF-8 和 ISO8859-1到底有什么区别及编码处理
- Unicode、UTF-8 和 ISO8859-1的区别
- Unicode、UTF-8 和 ISO8859-1的区别
- Unicode、UTF-8 和 ISO8859-1 区别
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 字符编码ASCII、Unicode、UTF-8、iso8859-1、GBK、GB2312
- 正确理解UNICODE UTF-8等编码方式
- 正确理解UNICODE UTF-8等编码方式
- Unicode、UTF-8 和 ISO8859…
- Unicode、UTF-8 和 ISO8859-1到底有什么区别
- Unicode、UTF-8 和 ISO8859-1有什么区别?
- 【GBK、UTF-8、ISO8859-1】三种编码方式总结
- Unicode、UTF-8 和 ISO8859-1到底有什么区别〈转〉Unicode、UTF-8 和 ISO8859-1到底有什么区别
- Unicode、UTF-8、ISO8859-1的区别
- 网络连接方式为NAT,系统无法上网或IP设置成静态后无法上网
- 《银翼杀手2049》杂感
- NOIP2017 Day1_T3 逛公园
- Android踩坑日记:Android动态权限分析和解决方案
- windows下php eclipse 和xampp安装总结
- Unicode、UTF-8 和 ISO8859-1等编码方式
- Xshell5 评估过期,需要采购,不能使用
- 有向无环图求最长路
- bfs dfs
- 在linux中减小和增大LV的过程与思考
- android开发使用组件个人心得!!!
- TCP连接的建立与终止
- 01背包(要求恰好装满)
- iOS开发:发短信、发邮件、打电话及摇一摇实现