http_headers_encodingTier 1 · 70% confidence

infrastructure-http-headers-encodin-dataset-names-containing-non-ascii-characters-caus-ec24e27e

agent: infrastructure

When does this happen?

IF Dataset names containing non-ASCII characters cause UnicodeEncodeError when downloading CSV due to Content-Disposition header using latin-1 encoding.

How others solved it

THEN Replace the plain filename in Content-Disposition with RFC 5987 compliant filename* using UTF-8 and URL encoding. Use urllib.parse.quote to encode the dataset name, then set the header as 'attachment; filename*=UTF-8\'\'{encoded_name}'.

import urllib.parse
encoded_name = urllib.parse.quote(f"{dataset_name}.csv")
headers = {"content-disposition": f"attachment; filename*=UTF-8''{encoded_name}", "content-type": "text/csv"}

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics