百科问答小站 logo
百科问答小站 font logo



信息技术中文字到底是什么? 第1页

  

user avatar   ling-jian-94 网友的相关建议: 
      

这个就体现出程序员和普通人对计算机认知的差异了,对程序员来说会觉得字符背后的那个编码才是字符,比如'a'在ASCII里面就是97,'中国'在UTF-8下面就是'xe4xb8xadxe5x9bxbd',而一般人会觉得画在屏幕上那个画才是字符。

在计算机内部处理字符和字符串的过程中,文字几乎始终都是以上面所述的编码的形式存在的,不过编码有多种不同标准,比如GBK和Unicode,处理和解释文字的时候需要知道相应的编码方式,搞混淆了就会出现乱码。在显示的时候,这些编码会被重新转换成对应的文字图形显示出来。早期的时候,当时的显示硬件甚至只支持显示字符,叫做文本模式,程序直接在显存里写入字符编码,显示设备自动将它翻译成对应的字符显示出来,早期DOS一类的命令行操作系统通常都是这样工作的,好处在于非常节约内存和显存。显示字符最初使用的是点阵模式,也就是一个字符变成一个固定大小的像素点的阵列,告诉计算机哪里显示黑哪里显示白,这样就能显示出字来,好处在于实现非常简单对硬件友好,缺点在于不能适配不同大小的文字,但本身在文本模式下,一屏幕显示的字符数量相对来说比较固定,也没法支持文字大小不同。

在Windows这样的图形模式下,显示硬件只处理像素数据,将文字转换成图形是软件完成的,一种仍然是点阵字体的方法,但如果显示很大的字,就会有锯齿出现;另一种方法使用矢量图形显示文字,也就是将字符轮廓用类似于数学中向量的方式表示出来,这样不管字体放多大显示质量都有保证,不会变成锯齿,因为Windows上常用TrueType所以有时候被称为TrueType字体。在现在主流的操作系统中,字体以文件的方式存储在磁盘上,操作系统会根据需要取字体中需要的图形出来绘制到屏幕上,就出现了我们看到的字符图形。

在现代,将文本编码展示为文本图形是极其复杂的过程,远比计算机刚发明时候仅支持ASCII的时代要复杂得多,因为人类有非常丰富的语言语种,同时对文字的排版有非常复杂的要求。比如,某些文字书写时是从右到左书写的,它在渲染到屏幕的时候,字符图形需要从右到左排列;但它还可能被嵌入到一个从左到右的其他语言当中使用(比如我们在中文中插入一个Windows这样的词一样,我们也可以在中文中插入一个从右到左语言的词),同样也可能有从左到右语言插入到从右到左语言之中。另外,因为计算机的字节只有8位,在不同编码方案中并非每个字符的长度都一样,像UTF-8每个字符的字节数就不同,但即便如此,拆分出的每个字符也未必在屏幕上就显示成一个图形——有一些前后的多个字符会组合到一起显示,比如说注音符号、泰文等,还有些时候不同的编码方式会对应到相同的显示符号上。即使是空格的处理,也会分为可以换行的空格、不可以换行的空格、参与两端对齐的空格、不参与两端对齐的空格等等。有些字体中字符的显示会根据前后字符的不同而不同(例如显示成连笔)。再加上文本排版时对于换行和对齐之类的要求,实际上对文本排版是一个极其复杂的问题,需要专门的排版引擎进行,字体的设计也远比前面讨论的复杂。为了全世界不同的人都能友好地使用计算机,专家和软件工程师们可以说没少花心思了。




  

相关话题

  江苏一公司要求员工改用国产手机,称买苹果辞退买华为补贴,这类「支持国货」的行为值得提倡吗? 
  第五代移动通信网络(5G)络和第四代移动通信网络(4G)有什么区别? 
  2021年你都学到了什么技术,明年又要为自己的梦想学点啥? 
  请教大神大仙,保安大叔级别想业余学习制作uwp APP,英语数学都特差,有可能学习吗? 
  这电脑配置吃鸡OK吗?大家? 
  世界互联网的网络结构是怎么样的? 
  程序员的bug解决不了怎么办? 
  CPU 的运行速度受光速影响吗? 
  为什么C语言能长盛不衰? 
  Nokia X 搭载的Nokia X software platform是Symbian OS和Android SDK的结合产物吗? 

前一个讨论
如果硬盘速度足够快,内存这东西是不是就可以取消了?
下一个讨论
为什么数学每次考完自己在想就能把不会的想出来?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利