← Unicode reference

Zero-Width No-Break Space — U+FEFF

One codepoint, two lives: invisible glue between words — and the infamous byte order mark that haunts the first character of text files.

Verified properties

Official Unicode nameZERO WIDTH NO-BREAK SPACE
CodepointU+FEFF (decimal 65279)
General categoryFormat (Cf)
White_Space propertyNo
Default ignorableYes
Counts as alphabeticNo
Survives whitespace trimmingNo
Size in UTF-83 bytes
Group on this siteTruly invisible

The rows above are derived live from the Unicode database whenever this site builds — including the default-ignorable flag that explains most of U+FEFF's disappearances.

Life one: no-break glue

As a character in running text, U+FEFF means «no line break here, and no width either». Between two words it welds them into an unbreakable unit without adding any visible gap. That job has an official successor — the Word Joiner (U+2060) — precisely because of this character's complicated second life, but decades of documents still carry U+FEFF doing honest glue work.

Life two: the byte order mark

At the very start of a file, the same codepoint is the BOM: a marker that tells software which byte order and encoding the file uses. Text editors add it silently, and that is where the trouble starts — configuration parsers, shells and JSON decoders that expect the file to begin with real content meet an invisible character first and fail with errors that name a character you cannot see. If a file «starts with garbage» that is not there, paste its first line into the test area below: a U+FEFF tag at position one is the usual culprit.

As a blank character: fragile

The table explains the practical warning on our character page: U+FEFF is default-ignorable and not alphabetic, so username validators strip it as readily as a space, and its BOM baggage means some systems treat it specially at boundaries. For blank names, the Hangul Filler wins; for a break-opportunity inside text, the Zero-Width Space; for unbreakable glue in new documents, prefer U+2060. Keep U+FEFF in your toolkit mainly as a thing to detect. In code, it is "\uFEFF" — and stripping it is the first line of many a file-import fix.

Try it

Suspect a BOM? Paste the first line of the offending file below — if a U+FEFF tag appears in position one, you have found your invisible saboteur.

0 characters