dsfgamesky 发表于 2019-7-5 17:19:17

【已解决】grub4dos加载字体,英文还是原来那样

本帖最后由 dsfgamesky 于 2019-7-12 21:35 编辑

英文不显示字体,如图
另外,这样显示字体为什么乱码?
本人刚来,不懂得

相关文件:

不点 发表于 2019-7-5 18:33:26

本帖最后由 不点 于 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 以外,其他字符的字模都是不限定的,它们的字模,既可以是“单宽”的,也可以是“双宽”的。

dsfgamesky 发表于 2019-7-5 20:44:08

本帖最后由 dsfgamesky 于 2019-7-5 20:52 编辑

不点 发表于 2019-7-5 18:33
你加载的字体里面,可能就不包括英文 ASCII。

grub4dos 默认采用 ROM 里面自带的英文 ASCII 字体。


不点大神,问再您几个问题。

不进入VBE图形模式不能加载字体吗(就是去掉graphicsmode-1 100:1000 100:1000 24:32)?

我的字体是用http://wuyou.net/forum.php?mod=viewthread&tid=256198&extra=page%3D2
2011895866818的转换出来的,为什么英文是这样的?(源TTF文件有英文字体)

dsfgamesky 发表于 2019-7-5 21:24:00

成功了
原来是bdf2hex少了个参数-s,导致略过了0000-00A3号字体
不过,还是要感谢不点大大的回复!

不点 发表于 2019-7-6 00:07:16

dsfgamesky 发表于 2019-7-5 20:44
不点大神,问再您几个问题。

不进入VBE图形模式不能加载字体吗(就是去掉graphicsmode-1 100:1000 ...

grub4dos 的字体只是用于 VBE 图形模式。

VBE 是 BIOS 时代有关图形显示的最后一个规范。

旧版 grub4dos 曾经采用 VGA 图形模式。后来改用新的 VBE 规范,就放弃了 VGA 规范。

新旧菜单是不兼容的。旧菜单采用 GB2312 编码,新菜单采用 UTF-8 编码。新旧版本的 grub4dos 也有一些命令是不同的。有的人使用很久以前的版本,就会发现连菜单都不正常了。所以,尽量不要使用旧版本。

在新版本中,如果你的菜单尾部含有字体字模,grub4dos 就会自动执行一条 graphicsmode 命令进入 VBE 图形模式。如果在你的菜单初始化命令(就是在 title 之前的那些命令)里面有一条加载字体的 font 命令,grub4dos 也会自动进入 VBE 图形模式。

魅力舞兵 发表于 2019-7-6 15:49:54

页: [1]
查看完整版本: 【已解决】grub4dos加载字体,英文还是原来那样