[读书笔记]ASCII字符的兼容性
来源:互联网 发布:中国软件评测 编辑:程序博客网 时间:2024/04/30 15:30
书籍名称:程卓越之道 第一卷:深入理解计算机 作者:Randall Hyde 译者:韩东海
原文摘录(P106-P107):
尽管ASCII是标准,但数据使用ASCII字符编码并不能保证在各个系统之间的兼容性。虽然确实一台机器上的A到了另外一个系统中很有可能还是A,但是对于控制字符的使用的标准化就很少。事实上,在ASCII码的第一组32个控制码以及最后一组的删除码中,只有4个控制码被大多数设备与应用所支持——退格(BS),制表符,回车(CR)以及换行(LF)。更糟的是,不同的机器通常会以不同的方式来使用这些“被支持”的控制码。行尾就是一个尤其麻烦的例子。Windows,MS-DOS,CP/M以及其他一些系统使用两字符序列CR/LF来标记行尾。而苹果Macintosh以及其他很多系统都使用单一的CR字符来标记行尾,Linux,BeOS以及其他各种Unxi系统使用单一的LF字符来标记行尾。
在这些不同的系统之间交换简单的文本文件都有可能会是一个让人郁闷的体验。即使你在这些系统上的所有文件中都使用标准的ASCII字符,在交换文件的时候还是需要转换数据。幸运的是,这种转换相当简单,而且很多文本编辑器都会自动处理具有不同行尾的文件(还有一些免费软件可以帮助你进行这种转换)。即使你不得不在自己的软件中进行处理,这种转换需要做的也不过是将一个文件中除了行尾序列之外的所有字符复制到另一个文件中,并且在碰到输入文件中的旧的行尾序列的时候输出一个新的行尾序列。
感想:
恰好前一阵开始学习Linux内核,在Windows里看Linux内核源代码的时候,如果用记事本(如果用Source Insight则不会出现后面的情况,后经测试,VC6.0、MDK、UltraEdit打开也正常)打开其源文件,会发现该换行的地方并没有换行,而是仅有几个“空格”隔开,当时还觉得很奇怪,但是也没有深究。直到看到这段话我才恍然大悟,并且认识到ASCII字符(尤其是控制字符)在各个系统中的兼容性问题。下面是用记事本打开一个Linux内核某C文件的情况。
- [读书笔记]ASCII字符的兼容性
- ASCII 字符的艺术
- 字符的ASCII码
- 打印Gohan的ASCii字符
- 1020 字符的ASCII码值
- 字符对应的ASCII码
- ascii 字符整型的自动识别
- 字符ascii码与字符的转换
- 常用字符的7位ASCII值
- 如何显示一个字符的ascII码值?
- 常用字符的7位ASCII值
- 常用字符的7位ASCII值
- java中取字符的ASCII码
- 显示输入字符的ASCII码
- UNICODE与ASCII字符的转换
- 只接受ASCII字符的TextBox
- ASCII码和字符的互换
- 显示一个字符的ASCII值
- 毕业设计——人脸检测——001 图片导入MATLAB
- STL之vector
- 自编JQuery插件第十二个:水平滚动图片
- 博客检讨
- const 总 结
- [读书笔记]ASCII字符的兼容性
- UVa Problem 10215 The Largest/Smallest Box... (最大/最小的盒子)
- 2011年下半年11月份系统架构设计师上午试题答案之一
- 生成符合flexigrid的json格式的java代码
- Oracle Pro*c 中sqlca以及oraca的定义和说明
- Curve Fitting Toolbox简介
- 文件名、目录名或卷标语法不正确
- 解决在飞思卡尔中断向量问题
- 2011年Web开发者需要掌握的技能