How to fix garbled vCard names and “invalid byte of UTF-8 sequence”
Garbled contact names or an invalid UTF-8 byte error mean the .vcf file was written in one character encoding and read as another. The pattern of the garbage tells you which encoding is wrong. Jump to your situation below or work through the methods in order.
By Neeraj Singh ~7 min Updated Jun 2026 93% found this helpful
Error message
Invalid byte of UTF-8 sequence. Contact names show as Ã, Ã… or =C3=BC instead of the correct characters.
Summary
Garbled names in a vCard come down to one thing: a character encoding mismatch. The file was saved in encoding A but the importing app read it as encoding B, so the bytes map to the wrong characters. The pattern tells you what went wrong. The classic A-tilde pattern (Ã, Ã…) is a Windows-1252 file read as UTF-8. Question marks or empty boxes mean a CJK encoding (Chinese, Japanese, Korean) read as a Western one. Raw sequences like =C3=BC are undecoded quoted-printable from an old vCard 2.1 file. Odd unrelated symbols can be MacRoman read as UTF-8. The fix is always the same principle: identify the real encoding, then convert the file to UTF-8. Remove any per-property CHARSET and ENCODING=QUOTED-PRINTABLE parameters, upgrade vCard 2.1 to 3.0 which uses plain UTF-8, and save without a byte order mark for the widest compatibility.
What this error means
Every text file stores characters as bytes, and an encoding is the rulebook that maps bytes to characters. When the app that wrote the .vcf and the app that reads it agree on the rulebook, names display correctly. When they disagree, you get garbage, or the reader hits a byte that is not valid in the encoding it assumed and reports an invalid UTF-8 sequence.
vCard makes this worse because the format changed over versions. vCard 2.1 does not declare a file-level encoding and often uses quoted-printable, while 3.0 and 4.0 use plain UTF-8. So an old 2.1 file moved between systems is the classic source of garbled names, and the symptom pattern points straight at the encoding to fix.
Common causes
A Windows-1252 file was read as UTF-8, giving the à pattern.
A CJK encoding was read as a Western one, giving question marks or boxes.
Quoted-printable was not decoded, leaving raw =C3=BC text.
The file is vCard 2.1, which has no file-level encoding.
A MacRoman file was read as UTF-8, giving unrelated symbols.
A UTF-8 byte order mark confused the importing parser.
Several files with different encodings were concatenated together.
Expert insight
“The garbage is a fingerprint, once you read it you know the fix. A capital A with a tilde in front of every accented letter is always Windows-1252 being read as UTF-8. Question marks mean a Chinese, Japanese or Korean file got read as Western. And =C3=BC sitting in a name is quoted-printable that nobody decoded, which screams old vCard 2.1. So I do not guess, I match the pattern, convert the whole file to UTF-8, and upgrade it to 3.0 so the per-property encoding nonsense goes away for good.”
3Replace WINDOWS-1252 with whatever encoding the file actually uses.
Method 3
Remove quoted-printable encoding
1If names contain raw =C3=BC style sequences, the file uses quoted-printable that was not decoded.
2Decode those sequences to the real characters and delete the ENCODING=QUOTED-PRINTABLE and CHARSET parameters from each line.
3Upgrading to vCard 3.0 (next method) removes quoted-printable entirely.
Method 4
Upgrade vCard 2.1 to 3.0
1Replace every VERSION:2.1 with VERSION:3.0.
2vCard 3.0 uses plain UTF-8 text with no per-property encoding declarations, which prevents the garbling.
3This also improves compatibility with iCloud and other strict parsers.
Method 5
Save as UTF-8 without a BOM
1When saving, choose UTF-8 without a byte order mark.
2A BOM is valid in UTF-8 but trips up some vCard parsers, including iCloud.
3In Notepad++ this is the “UTF-8” option, not “UTF-8-BOM”.
Method 6
Re-import the corrected file
1Delete the garbled contacts from the destination service.
2Import the corrected UTF-8 file.
3Spot-check a few accented or non-Latin names to confirm they display correctly.
The symptom is the diagnosis: Ã means Windows-1252 read as UTF-8, question marks mean a CJK encoding, and raw =C3=BC means undecoded quoted-printable. Whatever the source, the cure is to convert the file to UTF-8 and, where possible, upgrade it to vCard 3.0. Always save UTF-8 without a BOM for the widest compatibility.
Frequently asked questions
Why are my contact names garbled after importing a vCard?
The file was saved in one character encoding and read as another. The bytes map to the wrong characters, producing garbage such as the à pattern or question marks.
What does the à or Å pattern mean?
It means a Windows-1252 (Western) file was read as UTF-8. Convert the file from Windows-1252 to UTF-8 and the accented characters display correctly.
What does =C3=BC in a name mean?
That is undecoded quoted-printable encoding, common in vCard 2.1. Decode it to the real character and remove the ENCODING=QUOTED-PRINTABLE parameter, or upgrade the file to vCard 3.0.
How do I convert a vCard to UTF-8?
In Notepad++ use Encoding then Convert to UTF-8. On Mac or Linux use iconv, for example iconv -f WINDOWS-1252 -t UTF-8 input.vcf -o output.vcf with the file's real encoding.
Why do question marks appear instead of names?
A Chinese, Japanese or Korean file was read as a single-byte Western encoding, so the characters cannot be mapped. Convert from the correct CJK encoding to UTF-8.
Should I save with or without a BOM?
Without a BOM. A byte order mark is valid UTF-8 but causes problems with several vCard parsers, including iCloud, so choose plain UTF-8 when saving.
Still not working?
If names are still wrong after converting, the file may have been double-encoded or built by concatenating files with different encodings, so a single conversion cannot fix it. Re-export the contacts cleanly from the original source as vCard 3.0 in UTF-8, or run them through a converter that detects and normalizes the encoding. You can also submit your error to us for a tailored fix.