本质啊本质之五:字符编码的本质

原创 2007年10月10日 23:40:00

字符编码有好多种,平时容易见到的如:ASCIIgb2312gbkUnicode

 所谓字符编码就是对人类的文字符号进行编号(因为计算机里一切都是数字),如“B”6”

 吃透这个概念要注意:

1.       在计算机内部,一切的一切都是纯而又纯的高低电位代表的数字,没有任何其他的东西。

 

2.       我们在电脑上看到的字符(小画片),如:,其实是电脑帮我们画出来的位图,他在计算机内部是16进制数字 BABA 。(gb2312

 

3.    电脑显示一个字符过程如下( for windows )

步骤1:文字首先以某种编码保存在文件中。

步骤2Windows将文件中的文字编码映射到Unicode。(通过codepage

步骤3Windows按照Unicode在字体文件中查找字体图像,画到窗口上。

 

4.       计算机中同一个数字,在不同的编码规则里,表示的是不同的符号,当一堆big5编码被当做系统缺省编码gbk来处理转换时,就得到了一堆没有意义的符号:乱码。需要指出的是:对人来说虽是乱码,但于计算机来说则操作上没有任何变化,都是转换,查表,画图。由上可鉴, Unicode 是十分必须的。在 Unicode 编码规则里,世界上所有文字都对应着一个独立的数字,不用再担心不同的编码规则导致的转换错误了。

 

5.       编码规则对编译器影响很大。因为编译器实质上就是把一个源文件的字符的二进制流转换成目标文件的机器指令二进制流。那么不同的编码规则规定的一个字符对应的二进制数是不同的,如ASCII 里所有字符占1个字节, “a”这个字符对应的是一个字节 0x61 , 那么编译器的词法分析器通过每次读一个字节这个动作就可以把一个个字符读进内存,然后通过与 数字0x61比较(别忘了在计算机内部一切都是数字)得出这个字符是否是我们人类认为的“a”。但如果源文件使用的是Unicode编码的话,所有的字符都占了2个字节,字符“a”对应着数字 0x0061 ,那么原先那个编译器的词法分析器再一次读进一个字节进行分析就不行了。所以一个新型的完全支持Unicode 的编译器,他肯定是按 Unicode 编码这一套而非 ASCII 编码那一套来进行词法分析的。

 

6.      最后再强调一下:内存中一样的二进制码,通过不同的编码规则,转换,查字体,得出不同的字符(图片),我们人类可以看出哪些是乱码,哪些是正常的,计算机不能,所以乱码这个概念是我们人类才有的。计算机内一样的东西,乱不乱码只是人类的感觉。

 

 

 

计算机视觉基础5——本质矩阵与基本矩阵(Essential and Fundamental Matrices)

回顾本质矩阵的定义   本质矩阵的基本性质: 结合成像的几何关系        Longuet-Higgins equation 注意大小写...
  • u010025211
  • u010025211
  • 2016年11月18日 09:09
  • 766

c++之引用的本质

引用变量是c++引入的重要机制。错误观念:引用本质只是别名,在符号表中ri和i对应于相同的变量地址int i=5; 0100437E mov dword ptr [i],5 ...
  • Scythe666
  • Scythe666
  • 2016年04月18日 19:34
  • 1151

C语言的本质(10)——指针本质

指针,大概是C语言中最难理解的概念之一了。指针这个东西是C语言中的一个基本概念,C99中对于指针的定义是:1. 指针的类型是derived from其它类型,也就是说指针的类型是由它指向的类型决定的;...
  • yincheng01
  • yincheng01
  • 2014年06月30日 13:08
  • 2859

算法+数据结构的本质

何谓数据结构 数据结构是什么?它是组织内存中对象或基本类型数值(primtive types)的形式,为了更好地组织和使用这些对象而慢慢发展起来的固有形式,惯用法(idioms),是计算机开发领...
  • a236209186
  • a236209186
  • 2016年07月28日 00:32
  • 720

行列式的本质

考虑二维平面中的一组基向量(1,0)和(0,1),画在坐标系中表示其实就是沿着x轴和y轴的单位向量罢了,现在我们把这两个基向量放在一个矩阵中,当然,这并不是把两个向量简单的上下堆叠,而是首先要进行转置...
  • zjdxwwx
  • zjdxwwx
  • 2016年10月24日 16:35
  • 524

透析Java本质-谁创建了对象,this是什么

是构造方法创建的对象吗? package com.java.essence_36; import java.util.ArrayList; import java.util.List; /**...
  • u011278496
  • u011278496
  • 2014年05月23日 14:55
  • 1953

Jsp本质,jsp内置对像

什么是Jsp呢? JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,它是在传统的网页HTML中插入Java程序段,从而形成JSP文件,后缀名为(*.jsp)。 J...
  • u013210620
  • u013210620
  • 2016年08月18日 23:58
  • 932

线性代数的本质 - 系列合集观后总结

b站-线性代数的本质 这个系列的视频将可视化应用到线性代数几何意义的教学上,解释了很多之前在课堂上被强行定义但是不知道原理的线性代数常识:矩阵究竟有什么几何意义?为什么行列式绝对值等于面积(2d)或...
  • OX_louis
  • OX_louis
  • 2017年12月19日 17:55
  • 88

论分享的本质

这是我昨天在公司内部沙龙上讲的东西。因为原文是ppt,非常简单,我当时没有让人做纪要,现在根据PPT结构整理出来。   分享不是互联网以后才有的东西,而是早已植根于人类活动中的东西。原始人分享事物...
  • u012892897
  • u012892897
  • 2013年11月29日 10:40
  • 478

lambda表达式的本质

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T...
  • wangpeng2011314
  • wangpeng2011314
  • 2017年02月26日 20:50
  • 304
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:本质啊本质之五:字符编码的本质
举报原因:
原因补充:

(最多只允许输入30个字)