If ancestors called Müller, Björk, Novák or Nguyễn now appear as Müller, Björk, Novák or Nguyá»…n, the file has an encoding problem. Nothing is lost. The letters are all there. They are being read with the wrong dictionary.

What encoding is

A text file is a list of numbers, and an encoding is the rule for turning numbers into letters. For plain English the common encodings agree. For anything with an accent, they do not.

The ones you will meet in GEDCOM files:

  • ANSEL. The encoding the GEDCOM standard originally required. Old files, especially from the 1990s and 2000s, use it. It stores accents as a separate mark before the letter. Modern software mostly stopped supporting it.
  • ANSI. What Windows programs used for decades: one byte per character, in the code page of the computer that saved the file. In Western Europe and the Americas that is Windows-1252; in Central Europe (Serbian and Croatian Latin, Czech, Polish, Hungarian) Windows-1250; for Cyrillic Windows-1251; and there are Greek, Turkish and Baltic ones too. The header usually says only ANSI, not which one.
  • IBMPC and MACINTOSH. The same idea from old DOS programs (code pages 437, 850, 852 and 866) and old Mac programs (Mac Roman).
  • UTF-8. The modern one. Every letter in every alphabet. GEDCOM 7 requires it. Almost every program can write it if asked.

The problem happens when a file is written in one and read as another. UTF-8 stores ü as two bytes; read those two bytes as Windows-1252 and you get ü. That is the most common pattern by far.

How to tell which one a file is

Look at the header, in a text editor or in GED-VIEW's File editor (under File in the menu). There should be a line like:

1 CHAR UTF-8

or 1 CHAR ANSEL, or 1 CHAR ANSI. That is what the file claims. Now find a name with an accent and see whether it displays correctly. If the header says UTF-8 and the name looks right, the file is fine and the problem is in whichever program is reading it. If the header says one thing and the name looks wrong, the header is lying, and the program that wrote the file made a mistake.

Some files have a byte order mark, three invisible bytes at the very start that show up as  in some editors. That is a UTF-8 signature, so if you see it, the file is UTF-8 whatever the header says.

What GED-VIEW does

It looks at the file's bytes first, then at what the header claims:

  1. A byte order mark, or the pattern UTF-16 leaves, settles it. So does a GEDCOM 7 header, which is always UTF-8.
  2. A file that is valid UTF-8 is read as UTF-8, even when its header still says ANSEL or ANSI. Text in the older encodings almost never happens to be valid UTF-8, and a file saved as UTF-8 sometimes keeps an old CHAR line.
  3. A CHAR line that names a code page (WINDOWS-1250, CP1251, ISO-8859-2, MACINTOSH, ANSEL and the like) is followed.
  4. When the header only says ANSI or IBMPC, or nothing, GED-VIEW reads the names in each likely code page and keeps the one that produces real-looking words: no stray symbols inside names, no Latin and Cyrillic mixed in one word. When two read equally well (Central and Western European often do), the file's LANG line decides, then the language you use GED-VIEW in.

When the result was a guess, a notice under the menu says what the file was read as and offers the other encodings, with a few of your names shown in each before you choose. It cannot fix a file that is genuinely mixed (part UTF-8, part Windows-1252), which happens when two files were merged with a text editor.

Tools > Repair file also lets you read the file again in any of these encodings, and shows how many unreadable characters there were before and after. It offers this for every file that was not read as UTF-8, and you can always go back to the file as it was read. It works from the file's own bytes, which GED-VIEW keeps for every file you open. Every file GED-VIEW saves is UTF-8, with a 1 CHAR UTF-8 line to match.

How to fix it properly

Re-export from the program that made the file, choosing UTF-8 in the export options if there is a choice. Every current program offers it. That produces a clean file for good.

If the damage is already baked into the file (a program read it wrongly and saved Müller as text), Tools > Repair file lists it as text saved with the wrong character set and undoes it. If re-exporting is not possible (the program is gone, the file came from a relative) and the file is simply mislabeled, open the .ged in a text editor that can save with a specific encoding (Notepad++ on Windows, or any programmer's editor), tell it what the file actually is, then save as UTF-8 and change the CHAR line to match.

Next

Check the header of the file. If it does not say UTF-8, re-export as UTF-8 and use that copy from now on.