字符编码和字体-字库、字体、编码之间的关系
字库⾥包含字体与编码格式。
字库⾥有字体,根据编码格式在字库⾥查到对应的字,由于⼀个字库⾥包含⼀个字体,所以该字体是什么字库已经决定好了
中⽂的标准点阵⼀般是16X16,⽽ascii的点阵标准是5X7
《编码》
你有个⼩盒⼦,⾥⾯装了 256 枚印章,每⼀枚都有编号。你参加了学校的「印章密码爱好者兴趣⼩组」,⾥⾯有个外国来的⼩⼥孩,经常跟你玩⼀个游戏,⽐如你问「今年暑假你去了哪⾥?」她回答说「78,89,67」。因为你们都如此熟悉⾃⼰的印章,你⼀下⼦就明⽩了她说的是「NYC」。
「那你出⽣在哪⾥呢?」,你问。
中文字符unicode查询她迟疑了⼀下,想了想说,「77,195,188,110,99,104,101,110」。
你愣住了。⼀盒印章有 256 个,但是⼤家平时基本只⽤前 128 个。你知道 77 是 M,可 195 是什么?你⼀时想不起来,只好惭愧地拿出随⾝携带的那盒印章,拿出 195 和 188 号按在纸上:
「ü」。
所以⼩⼥孩说的是「München」。可这是啥意思呢?à ⼜ ¼ ⽉台?你疑惑地望着⼩姑娘,⼩姑娘也疑惑地望着你。只见她也转⾝拿出⼀个盒⼦打开来——你顿时傻了眼——⾥⾯密密⿇⿇地居然排了上千个⼩印章!⽽且有好多层!⼩姑娘熟练地翻到某⼀层,俏⽣⽣⽤指甲挑出⼀枚⼩印章来,在纸上印下⼀个符号:
「ü」
然后把印章递给你。你拿过来⼀看,好家伙,上⾯居然刻着「C3 BC」,另有⼀⾏⼩字「195 188」。所以……对于她来说,195 188 就代表能印出「ü」的印章了……可是印象⾥你的盒⼦⾥也有「ü」呀,于是你把盒⼦⾥的第252 号印章拿出来给她看,正是⼀个「ü」。就在你们⾯⾯相觑茫然⽆措快要哭出来的时候,兴趣⼩组的辅导员⼤叔⾛过来,亲切地说:「⼩朋友们,别难过,要继续相信爱情」,然后从墙上的书架⾥拿下⼀本封⾯上印着《ICONV》的⼤书,熟练地翻到「iso8859」这⼀章,指着「00fc ü:252」条⽬⾥后⾯的那个数字说:「你们看!iso8859 的 ü 就是 252 号!」;然后他⼜翻到「utf8」这⼀章,指着「00fc ü:C3 BC」说:「⽽ utf8 的 ü 就是⼗六进制 C3,BC,也就是⼗进制的 195,188!」。
⼤叔合上⼤书,把你的印章盒⼦翻过来,指给你看背后印着的⼀⾏⼩字:「Encoded in iso8859」,
⽽那个外国⼩⼥孩的盒⼦背⾯则印着「Encoded in utf8」。「我只能帮你到这⾥啦,⼩伙⼦」,⼤叔看着你们似懂⾮懂的样⼦,笑着说。
虽然你不太明⽩为什么要有这样⼀本书,为什么不能每个盒⼦都装⼀样的东西,但是从此之后,如果碰到⼩⼥孩说出不认识的数字,你们就会⼀起去查阅那本《ICONV》,从此过上了两⼩有猜的幸福⽣活。——————外⼀篇——————
《字体》
作为⼀个印章收集爱好者,你⼀⽣积攒了很多只盒⼦,每个盒⼦⾥⾯有很多带编号的⼩孔,每个⼩孔⾥⾯插着⼀只印章。有个盒⼦上⾯写着「Arial」,拿出⾥⾯编号为 65 的印章,印在纸上是这样的:
很多其他盒⼦⾥的 65 号印章,图案看起来都很相似,⽐如「Brush Script」盒⼦⾥⾯的 65 号:
直到有⼀天你遇到有个盒⼦上⾯写着「Webdings」,⾥⾯编号为 65 的印章,印在纸上居然是这样的:
……于是你想起⼩时候跟你⼀起玩的那个⼩姑娘,⽤颤抖的双⼿拿出 78,89,67 三枚印章,按在纸上:
————————
阅读完以上两篇⼩⼩说后请思考:
1. 编码和字体的关系是怎样的?
2. 「00fc ü:252」和「00fc ü:C3 BC」⾥⾯的「00fc」可能会是什么?
3. iconv 是做什么⽤的?
————————
思考题答案:
1. 字体描述的是字符所具备的外形,编码则是对于某个编号应该代表哪个字符⽽产⽣的约定。字体会以某
种编码排列,但是编码和具体的某字体之间没有必然联系,就好⽐ 78 可以是字母 N,却也可以是⼀只眼睛。
2. 把全世界所有可能出现的符号搜集到⼀起列成⼀个表,给⾥⾯的每个字符编列⼀个独⼀⽆⼆的号码,这
个编码计划叫做 Unicode。⽽那些号码则叫做(unicode 的)code point。00fc 就是 ü 在 Unicode 编码计划⾥的 code point。
3. 某⼀个特定字符在 Unicode ⾥的 code point 可以通过 iconv 到对应的 utf8 或者 iso8859 的 code
point,所以⼀个字符在 iso8859 ⾥的 code point 也就可以通过 iconv 到对应的 utf8 的 code point。换句话说,iconv 可以转换编码,但是具体这个编码⽤什么字体显⽰,不关 iconv 的事情。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。