操作系统的字符集是个什么类型的文件?
关注者
125被浏览
48,0297 个回答
DOS 时代的话,代码页(Code Page)是显卡里的字体数据,VGA 大多数情况下是 8×16 的点阵。
后来的话就是一个编码的转换表了,把某个 charset 的编码转换到 Unicode。
你给的链接解释的挺好的啊。
你的疑问就是怎么查找字符是吧?用的是索引而并非查找。
举个例子吧,以ASCII为例,65代表大写的A,以此类推,操作系统希望找到65对应的字符,以C语言为例可以有两种最基本的写法:
char Asc2Char(int v)
{
char c;
if (v == 65) c = 'A';
if (v == 66) c = 'B';
/* ... 以此类推,有很多 if */
if (v == 90) c = 'Z';
return c;
}
如果字符集里有十几万个文字,就是十几万个if,这么做当然慢了。
实际情况不是这样的,实际情况是:
char map[27] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
char Asc2Char(int v)
{
return map[v - 65];
}
一句就搞定了。至于map是在内存里还是文件里无所谓。所以不存在“扫描字符集”的“扫描”动