M: just did a quick look around, trying to find a linux method (if it exists) of automatically repairing the character order of old truetype fonts whose encoding happened before unicode became as ubiquitous as it is now, and i'm getting stymied by language equivocation. please go online and try to find out if there's a linux free utility that has the capacity to do so at least easily if not automatically. i managed to find fontlab, but that's commercial font construction, and i believe i've dealt with this with... fontforge, i think?.. but that was for a single necessary font, and i've got like 50 or more fonts i found on an old backup that need reshuffling to fit modern encoding.
G: TL;DR:
No, there isn’t a clean “one-click auto-fix all legacy encodings →
Unicode” Linux tool.
Yes, there is a viable workflow:
entity["software","FontForge","font editor"] + scripting
(Python or its native language) → batch re-encode + remap
glyphs.
Everything else is either partial (fontTools) or still manual glue.
This is the part you were half-remembering:
you don’t need to do this one font at a time — you just didn’t use it that way before.
You can:
FontForge explicitly supports scripting workflows for repetitive font transformations citeturn0search0.
This is where your frustration is valid, not confusion:
Meaning:
You build a mapping once, then reuse it.
Core idea:
import fontforge
font = fontforge.open("input.ttf")
font.encoding = "UnicodeFull"
for glyph in font.glyphs():
# example: remap based on glyph name
if glyph.glyphname == "A":
glyph.unicode = 0x0041
font.generate("output.ttf")Then batch it:
for f in *.ttf; do
fontforge -script fix.py "$f"
doneKey capabilities:
FontForge supports:
This is closer to “semi-automatic”:
fontTools (ttx)cmap tables directlyBUT:
You will not find:
That gap is real. People repeatedly look for it and come up empty.
Even community answers basically boil down to:
“use FontForge” citeturn0search3
If you’ve got ~50 fonts:
That turns your problem from:
“fix 50 fonts manually”
into:
“solve mapping once, apply 50 times”
Sometimes easier route:
That’s:
…but only works if you control the text pipeline.
There is no clean “auto-repair all legacy encodings” utility on Linux because the problem itself isn’t deterministic.
M: i've got about 25 projects going - no lie, it's probably more but i only recently finished #12 which was to install a whiteboard to make a master list and i haven't completely filled it yet - so this isn't hyper-important, but it's good to know it's possible. i'll come back here eventually, i think, but i couldn't do it immediately if i wanted to: i'll have to install fontforge, then scan through the affected fonts and see if your first option is possible through some kind of naming pattern (i make no assumptions about most things, and the older the files are the less i trust uniformity).
G: That’s a sane read of the situation. The bottleneck isn’t tooling—it’s whether the fonts give you anything consistent to latch onto.
When you come back to this, you’re not “fixing fonts” yet. You’re answering one question:
Do these fonts contain usable structure, or are they effectively random?
That determines everything.
When you install entity["software","FontForge","font editor"], open a couple representative fonts and check:
A, B, Cuni0041, uni00E9glyph001, char23, blank namesIf names are meaningful → automation is easy
If names are garbage → you’re mapping visually or not at all
Check:
Encoding → Reencode → UnicodeIf the glyphs “snap into place” → you got lucky
If everything scrambles → custom mapping required
Open 2–3 fonts and compare:
If yes → one script fixes all
If no → you may have 2–3 “families” of broken fonts, not 50 unique
problems
→ One mapping → batch fix everything
→ Make a few scripts, still manageable
→ Not worth fixing at scale
→ Only repair fonts you actually care about
Even before scripting:
In FontForge:
Encoding → Force Encoding → UnicodeElement → Glyph InfoIf glyph names exist but encoding is wrong, FontForge can sometimes auto-link them just from names.
That’s the closest thing to “automatic” you’ll get.
Treat this like:
“Pattern detection problem,” not “font repair problem.”
You’re not fixing fonts yet—you’re:
If step 2 fails, you walk away with minimal sunk time.
If these are:
You can just:
i.e., type by visual lookup instead of fixing encoding
Crude, but sometimes more efficient than reverse-engineering 1998-era chaos.
You’re not blocked by tooling—you’re waiting on evidence of
structure.
If structure exists, this becomes a clean batch job.
If it doesn’t, it’s not worth industrializing.