From 365c8f756b5f702e33ffb07fd26e70b1b83f72d3 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Tue, 10 Nov 2026 20:34:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(font):=20=E5=AD=97=E5=BA=93=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=99=A8=E8=A1=A5=20U+00B7=20=E4=B8=AD=E7=82=B9=20?= =?UTF-8?q?=E2=80=94=20=E4=BF=AE=E5=A4=8D=20=C2=B7=20=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B1=86=E8=85=90=E5=9D=97=EF=BC=88M34=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GB2312 A1A4 经 Python gb2312 codec 解成 U+30FB(MiSans 无该字形 → 空条目), U+00B7 从未进入字符集;meow_font.c 对「码位不存在」画空心方块,故 format 副题 「Books/ · 595 本」、书行「TXT · 10.3MB」与 M31「· 读」徽标在真机全是豆腐。 build_charset 显式 add(0x00B7),common/gbk 档生效(full 档本已含)。 重生成 default 字库(28/20px,common):glyph 4110→4194——+U+00B7 1 个, 另 +83 平假名来自 8/30 tier 重构后 common 字符集扩展(设备字体早于该重构)。 既有 4110 字形两档像素逐字节一致;渲染代码 meow_font.c 未改。 --- font/gen/gen_font.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/font/gen/gen_font.py b/font/gen/gen_font.py index bc679ab..0c9c6ed 100644 --- a/font/gen/gen_font.py +++ b/font/gen/gen_font.py @@ -135,6 +135,10 @@ def build_charset(tier="common", extra=""): add(ord(bytes([hi, lo]).decode("gb2312"))) except UnicodeDecodeError: pass + # 显式补 U+00B7(MIDDLE DOT):Python 的 gb2312 codec 把 GB2312 A1A4 解成 + # U+30FB(片假名中点),而 MiSans 无 U+30FB 字形 → 该槽位是空条目,U+00B7 从未进库, + # 真机渲染成 tofu。format 副题「Books/ · 595 本」与「· 读」徽标依赖此码位。 + add(0x00B7) if tier in ("gbk", "full"): # CJK 统一表意(含常用简繁/生僻):U+4E00-9FFF ≈ 2万+ for cp in range(0x4E00, 0xA000):