StringMash.com

 is a byte order mark

Your text was saved as UTF-8 and read as Windows-1252. Paste it below and it's put right.

15 characters
Updates as you type
Correct text is left as it is

Show the steps
  1. Each garbled run was turned back into the bytes Windows-1252 showed, then read as UTF-8, as it should have been.
  2.  → (BOM) (U+FEFF): bytes EF BB BF
Printable chart

What  means

 is a byte order mark that's been read with the wrong encoding.  at the very start of a file is a byte order mark, an invisible character, U+FEFF, that some programs put at the start of UTF-8 files to say they're UTF-8. Its bytes are EF BB BF. A program that reads the file as Windows-1252 shows them as ï, » and ¿.

WHY IT HAPPENS

Byte by byte

(BOM) (U+FEFF) in UTF-8, and what Windows-1252 makes of each byte
ByteIn UTF-8Windows-1252 shows
EFlead byte: 3 bytes in allï
BBcontinuation byte»
BFcontinuation byte¿

Where you probably saw it

The first cell of a CSV file, where the header id turns into id and stops matching.

The first line of a code, JSON or config file saved by an editor set to add a BOM.

The top of a web page, where a BOM in an included file can show as stray characters.

Related sequences

Text broken this way rarely has just one problem.  is a broken space, ’ is a broken apostrophe, é is a broken é. The mojibake fixer repairs all of them at once, and its table lists the rest.

Questions

What is ?

A byte order mark, U+FEFF, read with the wrong encoding. Its UTF-8 bytes EF BB BF show as  in Windows-1252.

Should I remove it?

For data and code, usually yes. Excel uses it to recognise UTF-8 CSV files, though, so keep it in CSVs meant for Excel. Set Byte order mark to Remove it to strip it.

Why does my CSV header not match?

An invisible BOM is stuck to the first column name, so id is really U+FEFF followed by id.

Sources

Added . What's new