今天编码的时候突然发现一个自己觉得蛮奇葩的问题:一个TAB可以容纳不定长度的微软雅黑字体字符!
这简直颠覆了我对传统的认识:一个TAB占8个ASCII字符宽,占4个汉字宽等等。这一度让我反思,是不是一直以来,我对`TAB占ASCII的8个字符宽`的理解就是错误的?
来看一张截图:表示多少个字符占据一个TAB的宽度。
记事本的字体设置(我已经换了!)
是不是有点那么一丁点一丁点匪夷所思?
下面这段文字是上面截图所使用的,font-family设置成`Consolas`(系统没有此字体就不是)了。
看看是有多乱!Consolas在Ubuntu上面的显示效果非常好(而且有中文字库,而且还是Sans-Serif,相当不错)!
123456789 <--- 9 个数字 <--- 16 个空格 aaaaaaaaa <--- 9 个小写字母a AAAAAAAA <--- 8 个大写字母A iiiiiiiiiiiiiiiiiiii <--- 20 个小写字母i ----------- <--- 11 个减号 ======= <--- 7 个等号 ```````````````` <--- 16 个反引号 @@@@@ <--- 5 个@字符 %%%%%% <--- 6 个美元符号 ((((((((((((((( <--- 15 个左小括号 ||||||||||||||||||| <--- 19 个竖线 ?????????? <--- 10 个问号 我我我我我 <--- 5 个我 ……………… <--- 3 个省略号
先就记录这么点,有空Google下一个TAB是如何计算宽度的 :-)