diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-10-16 19:01:11 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-10-16 19:01:11 +0200 | 
| commit | 860e2d1b90a2e3cb011e7b9160e0dcba59d4dd66 (patch) | |
| tree | dc7511ea64e68513512dbbff14505be8f35cf3c1 /ishtar_common/views_item.py | |
| parent | 154f9005337bba88e1e40186a2d908dc93a0d1aa (diff) | |
| download | Ishtar-860e2d1b90a2e3cb011e7b9160e0dcba59d4dd66.tar.bz2 Ishtar-860e2d1b90a2e3cb011e7b9160e0dcba59d4dd66.zip | |
Fix CSV export with bad encoding
Diffstat (limited to 'ishtar_common/views_item.py')
| -rw-r--r-- | ishtar_common/views_item.py | 13 | 
1 files changed, 12 insertions, 1 deletions
| 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') | 
