字符显示问题与emacs设置


author:

  • luixiao1223
    title: 字符显示问题与emacs设置

基础介绍

字符集

就是你需要显示字符的定义.所有中文字符可以组成一个字符集.26个英文字母也可以组成一个字符集.字符集的存在可以是一种说明.可以写在纸上.在数学上就是一个集合.集合里面有你所定义的字符.字符是这个集合的元素.仅此而已.

比如,unicode就是一种字符集定义.

字符编码

那么字符编码是怎么回事?你要把你定义的字符集记录存储在计算机里面就需要进行编码.将每个字符对应一串二进制.有了这个二进制编码.我们就能将一句话将一个句子.存储在计算机里面.

比如,UTF-8就是一种编码方法,可以把unicode字符串按照UTF-8的编码格式编码为一串二进制,并可以存储在计算机中.对于unicode字符集,可以采用不同的字符编码.比如UTF-16,UTF-32都可以用来对unicode字符串进行编码.将之转换成二进制字符串.

计算机如何显示一个文件

字符文件存储过程

  1. 你在编辑器中输入文字.这些文字组成一个字符串
  2. 你按下保存的时候,这些字符串会按照编辑器设置的编码格式比如(UTF-8).将这些字符一一编码为一串二进制.
  3. 这些二进制在添加必要的附加信息之后,被存储到磁盘中.

字符文件显示的过程

  1. 编辑器读取二进制文件
  2. 根据编辑器选择的解码方法比如UTF-8把二进制,解码的结果是类似于integer的index.这些index会和unicode字符集中的字符一一对应.
  3. 有了这些integer之后,我们就知道二进制串对应的unicode字符了.
  4. 编辑器显示这些字符(详情参看显示字符小节)

显示器显示字符

我们知道要显示的字符之后,如何在显示器上显示出人类能够理解的字符呢?这就要提到两种东西,一个叫做typeface,一个叫做font.

基础知识

typeface

这就是要显示的字形风格.比如Song,Yahei就是两种不同的字形.在字形设计人员眼里,字形是比字体更为纯粹干净的东西.它是一种艺术设计风格.

font

字体的信息更为明确,而typeface就是font里面的一个属性.font里面的typeface决定了这个字体的艺术风格.而font不仅有typeface这个属性.还有其他,比如高度,宽度,是否加粗等属性.可见,10pt的Song和20pt的Song是不同的font,但是他们却含有同样的typeface(Song)

显示器显示字符

编辑器解码出了字符的integer之后,会根据编辑器目前设置的font去查找integer对应的显示的字符图形,加上font定义的大小等信息.操作系统就能够渲染出字符的形状了.

显示的整个过程如下

+-------------+--------------+--------------+--------------+
|             |              | Font:        |              |
|Binary Code  | Integer Index|   Typeface   |   Display    |
|             |              |   Size(etc)  |              |
+-------------+--------------+--------------+--------------+

emacs字符显示

emacs中字符显示,比上面的过程稍微复杂一下.我们来看看原因.unicode字符集含有的字符非常多.而有的font在设计里面并没有那么多的character与unicode中的字符一一对应.如此以来,emacs里面就用了一种更为聪明的做法来处理这种情况.emacs会根据不同的unicode字符集范围,挂载不同的font.这样emacs就可以顺利的显示所有的unicode字符了.副作用是,可能会出现不同的字符高度不一风格不一.但是这些都是次要的.另外这些信息记录在fontset-default里面.如需要请查看这个emacs变量,来确定emacs的行为.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值