diff --git a/superset/views/core.py b/superset/views/core.py index e5730e5f9..a898faf9c 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -2474,9 +2474,11 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods # TODO(bkyryliuk): add compression=gzip for big files. csv = df.to_csv(index=False, **config["CSV_EXPORT"]) response = Response(csv, mimetype="text/csv") - response.headers[ - "Content-Disposition" - ] = f"attachment; filename={query.name}.csv" + quoted_csv_name = parse.quote(query.name) + response.headers["Content-Disposition"] = ( + f'attachment; filename="{quoted_csv_name}.csv"; ' + f"filename*=UTF-8''{quoted_csv_name}.csv" + ) event_info = { "event_type": "data_export", "client_id": client_id,