百科问答小站 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每个字符的字节数就不同,但即便如此,拆分出的每个字符也未必在屏幕上就显示成一个图形——有一些前后的多个字符会组合到一起显示,比如说注音符号、泰文等,还有些时候不同的编码方式会对应到相同的显示符号上。即使是空格的处理,也会分为可以换行的空格、不可以换行的空格、参与两端对齐的空格、不参与两端对齐的空格等等。有些字体中字符的显示会根据前后字符的不同而不同(例如显示成连笔)。再加上文本排版时对于换行和对齐之类的要求,实际上对文本排版是一个极其复杂的问题,需要专门的排版引擎进行,字体的设计也远比前面讨论的复杂。为了全世界不同的人都能友好地使用计算机,专家和软件工程师们可以说没少花心思了。




  

相关话题

  为什么在微软三月份就发布公告和更新的情况下两个月后仍有很多人中了「永恒之蓝」? 
  如何评价一加3T? 
  跟计算机有关的专业学什么好? 
  米聊用的是什么技术啊?是android还是phonegap啊? 
  为什么鸿蒙OS2.0手机版基于Android Open Source Project就不算安卓套壳? 
  上海电信SDN,求家庭网络优化方案? 
  Java 位与0xff 和位或0x00 得到的结果为什么不同? 
  如何看待windows 10不能通过正常方法卸载数个应用商店内的metro应用? 
  你认为 MIUI12 可以挑战 iOS 了吗? 
  为什么微软就是不改广受诟病的 Windows 10 自动更新机制? 

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





© 2024-05-10 - tinynew.org. All Rights Reserved.
© 2024-05-10 - tinynew.org. 保留所有权利