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.


What actually exists (and what doesn’t)

1. The only real answer: FontForge (scripted, not manual)

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 citeturn0search0.


2. Why “automatic repair” doesn’t really exist

This is where your frustration is valid, not confusion:

Meaning:


What you can actually do at scale (practical pipeline)

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"
done

Key capabilities:


Option B — FontForge + custom encoding files

FontForge supports:

This is closer to “semi-automatic”:


Option C — fontTools (Python, lower-level)

BUT:


What does NOT really exist (despite sounding like it should)

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” citeturn0search3


The realistic best approach (compressed)

If you’ve got ~50 fonts:

  1. Pick ONE representative font
  2. Build a mapping strategy:
  3. Encode that logic in:
  4. Batch run across all fonts

That turns your problem from:

“fix 50 fonts manually”

into:

“solve mapping once, apply 50 times”


Third option (edge case you might be overlooking)

Fonts that are visually correct but semantically broken

Sometimes easier route:

That’s:

…but only works if you control the text pipeline.


Bottom line

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.

What you’re really checking later

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.


Quick triage (fast, low-effort)

When you install entity["software","FontForge","font editor"], open a couple representative fonts and check:

1. Glyph names

If names are meaningful → automation is easy
If names are garbage → you’re mapping visually or not at all


2. Encoding setting

Check:

If the glyphs “snap into place” → you got lucky
If everything scrambles → custom mapping required


3. Consistency across fonts

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


Realistic outcomes (so you don’t overcommit mentally)

Case A — Best case (common)

→ One mapping → batch fix everything


Case B — Mixed but structured

→ Make a few scripts, still manageable


Case C — Worst case

→ Not worth fixing at scale
→ Only repair fonts you actually care about


One practical trick (saves a lot of time)

Even before scripting:

In FontForge:

If 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.


Strategic framing (so it doesn’t become project #26)

Treat this like:

“Pattern detection problem,” not “font repair problem.”

You’re not fixing fonts yet—you’re:

  1. Sampling
  2. Classifying
  3. Deciding if it’s worth automating

If step 2 fails, you walk away with minimal sunk time.


Third option (non-obvious but sometimes better)

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.


Bottom line

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.