From 2fba393f5fb0704117c538f536b0e0e62b508464 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 16 Oct 2019 19:01:11 +0200 Subject: Fix CSV export with bad encoding --- ishtar_common/views_item.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'ishtar_common/views_item.py') diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 6f5dba236..dd44fb411 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -11,6 +11,7 @@ import logging import re import subprocess from tempfile import NamedTemporaryFile +import unidecode from django.conf import settings from django.contrib.gis.geos import GEOSException @@ -1993,7 +1994,17 @@ def get_item(model, func_name, default_name, extra_request_keys=None, delta += 1 val += data[1:][idx + delta] row.append(val) - writer.writerow(row) + try: + writer.writerow(row) + except UnicodeEncodeError: + vals = [] + for v in row: + try: + vals.append(v.encode(ENCODING).decode(ENCODING)) + except UnicodeEncodeError: + vals.append(unidecode(v).encode(ENCODING).decode( + ENCODING)) + writer.writerow(vals) return response return HttpResponse('{}', content_type='text/plain') -- cgit v1.2.3