Content-Disposition Filename Parser
Pulls the download filename out of a Content-Disposition header, preferring the percent-encoded filename* form from RFC 5987 and decoding it for you.
Filename
—
Which filename the browser will actually use
When a download saves under a strange name — full of percent signs, or turning into "download" with no extension — the cause is almost always the Content-Disposition header. It carries the suggested name in two formats that coexist: the traditional filename, limited to ASCII, and the RFC 5987 filename*, which declares its encoding and allows accents, Cyrillic or kanji.
Paste the whole header and the page shows which name will be used. When filename* is present it wins — that is the rule browsers follow — and the value appears already decoded, so "relat%C3%B3rio.pdf" reads as "relatório.pdf" again. When only the plain filename exists, that is what shows up, with the quotes stripped.
The practical advice is to send both: a plain filename with an unaccented version for older clients, and filename*=UTF-8''… with the real name. It also pays to check what comes before the name: attachment forces a download, while inline asks the browser to display the content when it knows how. And a filename coming from user input needs sanitising — slashes, quotes and line breaks in a header are a well-known attack vector.
Frequently asked questions
Why did my filename arrive with %C3%A9 in it?
What are the two single quotes in filename* for?
Does the page read headers split across several lines?
Related Tools
HTTP Accept Header Content Negotiation Matcher
Paste a client Accept header and the comma-separated media types a server offers to see which one wins and at what q value. Exact types and */* only.
MIME Types (Reference)
Searchable MIME type table — search by extension (.json, .pdf) or MIME (application/json, image/png). Includes common formats for web, audio, video, fonts and documents. Everything in your browser.
Cache-Control max-age Explained
Convert the Cache-Control max-age value (in seconds) into a readable time in hours and days. Useful for understanding and debugging HTTP cache and CDNs.
Basic Auth Generator
Generate the HTTP `Authorization: Basic <base64>` header from username and password. Useful to test APIs with basic auth via curl, Postman or fetch. Everything in your browser.
Accept-Language Header Parser and q Sorter
Sorts the browser language tags by their q factor, keeps ties in the order sent, and flags q=0 refusals, invalid q values and the * wildcard range.
Cache-Control Parser
Read a Cache-Control header and show each directive (max-age, no-cache, public, immutable, stale-while-revalidate) with explanation.