各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
来源:互联网 发布:夏易网络官网 编辑:程序博客网 时间:2024/05/16 02:35
转自http://blog.csdn.net/zzm628/article/details/45217937
首先来说一下,为什么需要编码:
第一,我们知道在计算机中存储信息的最小单位是1个字节(byte),也就是8个bit,所以能表示的字符范围也就是0-255个。
第二,我们要表示的符号太多太多,远远超过256个,无法用1个字节来完全表示。所以就需要一种新的数据类型char,而从char到byte必须编码,反之为解码。
其实,编码解码就是完成的翻译过程(“翻译”很容易理解吧),各种编码方式就是一部部字典。
1、ASCII码
ASCII码,总共只有128个。0-31又被用于表示控制字符如换行、回车、删除等,剩下的才是一些打印字符,数量太少了。(表示英文和数字够了,有木有)
2、ISO-8859-1
该编码是在ASCII编码的基础上扩展出来的,但它仍然是单字节编码,总共只能表示256个字符
3、GB2312
GB2312的全称是《信息技术 中文编码字符集》,它是双字节编码,编码范围是A1-F7,其中A1-A9是符号区,总共包含682个符号;B0-F7是汉字区,包含6763个汉字。
4、GBK
GBK的全称是《汉字内码扩展规范》,它的出现是为了扩展GB2312,它的编码范围是8140-FEFE(去掉XX7F),总共有23940个码位,能表示21003个汉字,它的编码是和GB2312兼容的
5、UTF-16
UTF-16的出现是ISO想要创建一个全新的超语言字典,世界上所有的语言都可以通过这个字典来相互翻译,可想而知,这个字典是多么的复杂、庞大。UTF-16用两个字节来表示Unicode的转化格式(两个字节就是16个bit,所以要UTF-16),采用的是定长的表示方法,即任何字符都可以用两个字节表示。这样表示字符就是变得的非常方便。但是,也有一个缺陷,就是很大一部分的字符用一个字节就可以表示了,UTF-16却用两个字节,有些浪费存储空间。所以有另一个编码方式就出现了,也就是UTF-8
6、UTF-8
UTF-8采用了一种变长技术,每个编码区域有不同的字码长度,不同类型的字符可以由1-6个字节组成。
UTF-8的编码规则如下:
1) 如果是1个字节,最高位为0,则表示这是1个ASCII字符。可见,所有ASCII编码已经是UTF-8了
2) 如果是1个字节,以11开头,则连续的1的个数暗示这个字符的字节数,例如:110xxxxx代表它是双字节UTF-8字符的首字节
3) 如果是1个字节,以10开始,表示它不是首字节,则需要向前查找才能得到当前字符的首字节。
结合所述,建议统一采用UTF-8的编码方式比较好。
- 各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
- 各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
- 字符编码详解(ASCII ,utf-8,unicode,gbk,gb2312,iso 8859-1等)
- ISO-8859-1,ASCII,Unicode,UTF-8,UTF-16,GB2312,GBK,DBCS编码
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- SQL server 多表联合查询
- js无缝轮播效果制作||clss选择器调用时因注意的问题
- 【C】C语言字符处理函数
- Centos7 内核升级和系统更新命令
- 丝绸之路
- 各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
- 微信网页授权
- 网络
- Linux平台 Oracle 12cR2 RAC安装Part1:准备工作
- 关于在VS2012新建Web项目报错:当前已将Web应用程序项目配置为使用IIS Express。若要切换回......的解决方法
- nodeJs启动的时候:Error: Cannot find module '../build/Release/bson'的解决办法
- python 多线程串行和并行
- C++中extern关键字的作用
- poj 2586 Y2K Accounting Bug(贪心)