您好、欢迎来到现金彩票网!
当前位置:21点 > 字符集 >

字符集是存储在计算机的什么位置呢?内存还是硬盘呢

发布时间:2019-06-27 06:37 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  电脑中存储的永远是2进制码,而不是方块字,也不是英文字母。 2进制码,每8位构成一个字节,代表了一个0-255的数字。 那么这个数字代表什么呢?如果是字母的线代表a,这个规则 就是一个字符集,著名的是ascii。 如果换个其他国家的,比如说德文,那么65就代表另外的东西了,那就是另外的字符集。 由于亚洲的文字无法用256个来表示,所以需要用双字节来表示,比如GB2312是一个字符集,同理,日文有日文的字符集。 同样的网页,用不同的字符集来显示,会出现不同的样子,正因为,同样的2进制存储的信息,字符集不同,显示的内容也就不同了。网页中有,这就是对字符集的指定,所以网页才能正确显示文字。

  字符集就如同字面上的理解,字符的集合。一个具体的字符集,如GBK字符集确定了字符的范围和默认的编号。而实际显示在屏幕上的,是系统上的基于字符集某一种字体。字体就相当于一个字符的图形库(当然仍然是由二进制绘制的),通过字符映射将字体中各字符的索引映射到一个对应的二进制数据,而这个二进制数据就是编码。有了这种编码,就容易存放以及传输文本数据了。你问的应该是字体(也就是某种字符库)的存放位置,当然是存放在硬盘了。

  其实提问者在上一个回答中的追问是对的,电脑中存放的只是字符的二进制编码,正常情况下是不可能变成“字”显示给用户的。只不过,系统在显示一个字符的时候并不是直接把二进制编码显示出来的,而是做了一步额外的操作:根据这个二进制编码,在字符映射表当中找到它所对应的字符的位置,然后把这个字符显示出来。这个过程就类似于我们查字典,先根据拼音找到字的页码,然后再翻到那一页查看字的信息。二进制编码相当于拼音,字符映射表相当于字典,那个字符就是字典里要查询的汉字了。需要注意的是,不同的编码对应着不同的字符映射表,当你的系统支持某种编码时就说明系统里有这个编码的映射表。如果你用某一种编码的二进制值在另一种编码的映射表里寻找字符时,就出现了所谓的“乱码”。

  然后再说说字符库。前面已经说了,系统是通过二进制编码和字符映射表从而找到真正用于显示的字符的位置的。而存放这些用于显示的字符的地方就是字符库。某种字体就是一个字符库。当你用同一种编码进行文本编辑的时候,会发现不同的字体显示的样子是不一样的。要知道,同一种编码就说明计算机中存储的都是同一种二进制值,但是显示的时候却会因为字体的不同而不一样。如果在你最初的认知当中,肯定会有疑问的。现在根据我们上面的解释,你应该能知道原因了。因为,系统并不是直接显示二进制值的,而是还要进行一个转换的,而当我们选择一种字体时,就相当于我们确定了一个字符库,当显示字符的时候就根据索引来到这个字符库中选择字符进行显示。

  (这里的“Windows: 简体中文”字符集是GBK字符集,GBK字符集并不仅仅只是简体中文,还包括繁体、韩文、日文等多种其它的字符。Unicode码位简单来说就是字符在Unicode字符集当中的ID号(UCS-2就是直接把这个ID号当作编码值的),具体可以自行搜索了解编码的知识,这里就不过多阐述了。)

  从这两张图中可以发现,“亀”字的GBK编码都是0x8177,但是这两张图片里“亀”字显示的样子并不一样。

  (BTW:之所以回答这个两年前的问题,并不只是为了解答提问者,提问者也许早就已经知道原因了。更重要的是为了帮助以后有相关疑问并搜索到这个问题的人,毕竟我自己当初就是有这方面疑问而看到这个问题的。其实很多人并没有真正思考过字符集、编码、字符库、字体之间的关系,希望我的这些回答能够帮助到大家!)

http://magaltouba.com/zifuji/129.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有