Encoding declared in HTTP header, BOM, and meta tag — they do not match.
Charsetlint reads the three places a browser checks for character encoding, reports each declaration, and flags contradictions. One URL, one diagnosis.
Paste a URL and see which encoding declaration wins the priority order. Full results on the diagnosis page.
What it examines
- HTTP
Content-Typeheader charset parameter - Byte-order mark (BOM) at the start of the response
<meta charset>tag within the first 1024 bytes- Contradictions between any two declarations
- Declaration that wins per browser priority order
- Meta charset positioned after byte 1024 (invisible to parsers)
- UTF-8 bytes served as latin-1 (the
’pattern) - Upstream HTTP status on error pages
You have already checked the meta tag twice and still see ’ when the page renders. The problem is not in the file you are reading — it is in the declaration the browser trusts over yours. Charsetlint tells you which one that is.
Note: This tool cannot inspect URLs hosted behind Cloudflare (including example.com, cloudflare.com, 1.1.1.1, and stackoverflow.com). Those hosts report as unreachable — this is a platform limitation of the diagnostic runtime, not a result about the target server.
No data is stored server-side. Each diagnosis is ephemeral.
No data is stored server-side. Each diagnosis is ephemeral.