字符集与编码八之ASCII和ISO-8859-1
来源:互联网 发布:卷皮和淘宝质量哪个好 编辑:程序博客网 时间:2024/06/01 09:02
在前面其实也谈到了ASCII了,但并没有很具体,作为一个完整系列的一部分,还是有必要谈一下,也作为后面讨论的一些基础。
ASCII
它的全称是American Standard Code for Information Interchange(美国信息交换标准代码),是一个7位字符编码方案。下面是它的一张简图(来自http://www.asciitable.com/index/asciifull.gif):
ASCII定义了128个字符,包括33个不可打印的控制字符(non-printing control characters)和95个可打印的字符。
控制字符
32以下的及最后一个127是所谓的控制字符。(0x00~0x1F以及0x7F)
即上图最左边一列的32个字符及最右边一列最后的一个字符(DEL,删除)
熟悉的有0x09(TAB,horizontal tab,水平制表符),0x0A(LF,line feed,’\n’换行符),0x0D(CR,carriage return,’\r’回车符),其它的很多现在已经是废弃不用了。
关于回车换行(‘\r\n’),在屏幕还不普及的时代,结果输出经常是依赖于所谓的电传打印机,打印头沿着打印杆从左向右移动并打印出一个个字符,当碰到一个回车符时(CR,0x0D,’\r’),打印机就指示打印头重新回到最左边的位置上,这即是传统意义上的回车了。(你可以把打印头想像成一辆小车,回车即是退回原处,现代意义上的回车则通常包含回车与换行两个动作)
回车符后常跟着一个换行符(LF,0x0A,’\n’),打印机收到换行符就会指示滚筒滚动,这样,打印头就对准了纸张上的新的一行。如果没有换行,新的打印输出就会重叠在上一行上,有时走纸不顺畅时也会造成这种后果。
目前,在Windows系统上,回车键会产生两个字符CRLF,一起表示换行。Unix/Linux之类的则单独用LF表示换行,而苹果的Mac则单独用CR来表示换行。
其它字符
包括空格,字母,数字以及一些常见的标点符号等。
关于空格(SPACE,图中第二列第一个,0x20),它没被归到控制字符类,当然,你可能会纠结它是否算可打印的。
由于只定义了27=128个字符,用7bit即可完全编码,而一字节8bit的容量是256,所以一字节ASCII的编码最高位总是0,这为后来的编码方案兼容它带来的便利。
ISO-8859-1
ISO-8859-1又称Latin-1,是一个8位单字节字符集,它把ASCII的最高位也利用起来,并兼容了ASCII,新增的理论空间是128,但它并没有完全用完:(截图来自http://zh.wikipedia.org/wiki/ISO/IEC_8859-1)
可以看到,新增部分也保留了前面的32个位置(中间绿色部分,0x80-0x9F),与前面的ASCII部分类似,所以实际只增加了128-32=96个,主要是西欧的一些字符,另外可以看到乘号(0xD7)和除号(0xF7)也被包含进来了。
0x00-0x1F、0x7F、0x80-0x9F在此字符集中未有定义。(即图中的绿色部分)
ISO-8859-1能与ASCII兼容,同时它的适用范围又较广,一些协议或软件把它作为一种缺省编码,当然,现在更好的选择是UTF-8。
- 字符集与编码八之ASCII和ISO-8859-1
- HTML H5 ISO-8859-1 ASCII实体转义字符集
- ASCII、GBK、unicode、utf-8、iso-8859-1等编码的发展史和相互关系
- ascii码 iso 8859-1 Unicode 字符编码 UTF8编码 区别 表格
- ascii码 iso 8859-1 Unicode 字符编码 UTF8编码 区别 表格
- ISO-8859-1 编码
- 字符编码详解(ASCII ,utf-8,unicode,gbk,gb2312,iso 8859-1等)
- 各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
- 各种编码是什么东西?(iso-8859-1 、gbk、gb2312、UniCode、ASCII、URL、URI)
- ISO-8859-1,ASCII,Unicode,UTF-8,UTF-16,GB2312,GBK,DBCS编码
- 架构师必须掌握的各种编码:ASCII、ISO-8859-1、GB2312...
- 各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
- unicode Ascii gbk字符集和utf-8 utf-16编码
- ISO Latin—1字符集(编码160-255)
- 根深蒂固的ASCII/ISO 8859-1
- 各种ISO 8859字符集
- 字符集和字符集编码
- ISO Latin-1字符集
- Unity3D 使用图片自定义字体,防止打包安卓后字体变形
- Spring--IoC--Bean的装配--Bean后处理器
- oracle中schema指的是什么?
- JavaScript常用方法记录
- System.nanoTime (计时工具类),用于计算时间差,精确度和系统相关。
- 字符集与编码八之ASCII和ISO-8859-1
- linux c/c++ 面试题目整理(一)
- poj 3281 Dining 【图论-网络流-最大流-EK&Ford-Fulkerson】
- Maven—项目管理工具
- 每天一个Linux命令(58):wget
- JSESSIONID、SESSION、cookie .
- [Leetcode] 94. Binary Tree Inorder Traversal 解题报告
- angular2国际化插件
- Java编程之动态代理