diff --git a/mo/jobs/submit.py b/mo/jobs/submit.py index 1a5c7560fecd0ee07e1575a26bf9e119847e908d..8a8f6b4b42a7a3a0f8e335b6c32a1faa51e6c9bc 100644 --- a/mo/jobs/submit.py +++ b/mo/jobs/submit.py @@ -76,7 +76,7 @@ def handle_download_submits(the_job: TheJob): cnt += 1 full_name = u.full_name() ascii_name = (unicodedata.normalize('NFD', full_name) - .encode('ascii', 'ignore') + .encode('ascii', errors='ignore') .decode('utf-8')) fn = f'{task_code}_{cnt:04d}_{u.user_id}_{p.paper_id}_{ascii_name}.pdf' fn = werkzeug.utils.secure_filename(fn) diff --git a/mo/web/imports.py b/mo/web/imports.py index a9c19e040d2e819310ae20361ae0480b7cb4d324..b5cf4366746d1ef77e31c74c2eff5d08b1d1c637 100644 --- a/mo/web/imports.py +++ b/mo/web/imports.py @@ -48,7 +48,7 @@ def generic_import_page(form: ImportForm, imp: Optional[Import], redirect_url: s flash('Vyberte si prosÃm soubor', 'danger') elif form.get_template.data: out = imp.get_template() - resp = app.make_response(out.encode(fmt.get_charset())) + resp = app.make_response(out.encode(fmt.get_charset(), errors='replace')) resp.content_type = fmt.get_content_type() resp.headers.add('Content-Disposition', 'attachment; filename=OSMO-' + imp.template_basename + '.' + fmt.get_extension()) return resp diff --git a/mo/web/table.py b/mo/web/table.py index 2d69af23a02d253e62f5d349cb50073dd4c702ba..a18bd2c6cf51134547dc19c697d7afb658c663f9 100644 --- a/mo/web/table.py +++ b/mo/web/table.py @@ -239,7 +239,7 @@ class Table: r = [row.get(c.key) for c in export_columns] writer.writerow(r) - return out.getvalue().encode(fmt.get_charset()) + return out.getvalue().encode(fmt.get_charset(), errors='replace') def to_csv_stream(self, fmt: FileFormat, export_columns: List[Column]) -> Iterable[bytes]: out = io.StringIO() @@ -252,12 +252,12 @@ class Table: nrows += 1 if nrows >= 100: - yield out.getvalue().encode(fmt.get_charset()) + yield out.getvalue().encode(fmt.get_charset(), errors='replace') out.seek(0) out.truncate() nrows = 0 - yield out.getvalue().encode(fmt.get_charset()) + yield out.getvalue().encode(fmt.get_charset(), errors='replace') def send_as(self, format: Union[FileFormat, str], streaming: bool = False, args: Union[None, MultiDict, ImmutableMultiDict] = None) -> Response: try: diff --git a/mo/web/util.py b/mo/web/util.py index 5e3d56eb009d68bff641ffd57a416f350eb18c1b..19c2bf61700d73b442e1104caeee1b254dd97e13 100644 --- a/mo/web/util.py +++ b/mo/web/util.py @@ -76,7 +76,7 @@ def _task_paper_filename(user: db.User, paper: db.Paper) -> str: full_name = user.full_name() ascii_name = (unicodedata.normalize('NFD', full_name) - .encode('ascii', 'ignore') + .encode('ascii', errors='ignore') .decode('utf-8')) if paper.type == db.PaperType.solution: