dsfgamesky 发表于 2019-7-5 20:44 grub4dos 的字体只是用于 VBE 图形模式。 VBE 是 BIOS 时代有关图形显示的最后一个规范。 旧版 grub4dos 曾经采用 VGA 图形模式。后来改用新的 VBE 规范,就放弃了 VGA 规范。 新旧菜单是不兼容的。旧菜单采用 GB2312 编码,新菜单采用 UTF-8 编码。新旧版本的 grub4dos 也有一些命令是不同的。有的人使用很久以前的版本,就会发现连菜单都不正常了。所以,尽量不要使用旧版本。 在新版本中,如果你的菜单尾部含有字体字模,grub4dos 就会自动执行一条 graphicsmode 命令进入 VBE 图形模式。如果在你的菜单初始化命令(就是在 title 之前的那些命令)里面有一条加载字体的 font 命令,grub4dos 也会自动进入 VBE 图形模式。 |
本帖最后由 dsfgamesky 于 2019-7-5 20:52 编辑 不点 发表于 2019-7-5 18:33 不点大神,问再您几个问题。 不进入VBE图形模式不能加载字体吗(就是去掉graphicsmode -1 100:1000 100:1000 24:32)? 我的字体是用http://wuyou.net/forum.php?mod=v ... &extra=page%3D2 2011895866818的转换出来的,为什么英文是这样的?(源TTF文件有英文字体) |
本帖最后由 不点 于 2019-7-5 18:57 编辑 你加载的字体里面,可能就不包括英文 ASCII。 grub4dos 默认采用 ROM 里面自带的英文 ASCII 字体。 如果你加载了新的英文 ASCII 字体,就会覆盖默认的 ROM 字体。 如果你没加载自己的英文 ASCII 字体,那当然还是 ROM 字体在起作用。 你的最后一张图片,表明你的菜单里面完全没有加载字体的命令,而且菜单尾部也没有发现字体字模,因此,菜单进入了英文文本模式,没有成功进入 VBE 图形模式。那么,每个 UTF-8 格式的中文字符都会显示成 3 个“扩展 ASCII” 的乱码。 补充: ASCII 码值 0 ~127,是英文字符,属于 “单宽” 字符。你的英文字体,如果是“双倍宽度”的,那会被 grub4dos 忽略掉。 其他字符都可以是“双宽”的,只有 ASCII 0~127 被限定为“单宽”。如果英文 ASCII 码允许是“双宽”的,那么显示会混乱,程序运行可能也会发生异常。 就是说,除了 ASCII 0~127 以外,其他字符的字模都是不限定的,它们的字模,既可以是“单宽”的,也可以是“双宽”的。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.