UnicodeError при попытке отправить файл с греческим именем файла - PullRequest
0 голосов
/ 24 сентября 2018

Я создал и заполнил греческие имена в set (), а затем передал этот набор значений в функцию представления.

Когда я пытаюсь напечатать этот набор, греческие имена появляются как неряшливость.Я полагаю, что для этого нужно, чтобы Apache mod_wsgi или Bottle не запускались с поддержкой utf-8.

Как я могу сказать Apache / Bottle использовать LANG = el_GR.utf-8, чтобы я мог правильно отображать юникодпотому что я полагаю, что это здесь?

Я искал AddDefaultCharset utf-8 в httpd.conf, но он уже включен, поэтому я должен спросить, почему греческие символы отображаются как jibberish?

Это когда я пытаюсь загрузить файл с греческим именем файла.

Error: 500 Internal Server Error
Sorry, the requested URL 'http://superhost.gr/downloads/file' caused an error:

Internal Server Error
Exception:
UnicodeEncodeError('ascii', '/static/files/Î\x92ιογÏ\x81αÏ\x86ικÏ\x8c - Î\x9dίκοÏ\x82.docx', 14, 34, 'ordinal not in range(128)')
Traceback:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/bottle.py", line 862, in _handle
    return route.call(**args)
  File "/usr/lib/python3.6/site-packages/bottle.py", line 1740, in wrapper
    rv = callback(*a, **ka)
  File "/usr/lib/python3.6/site-packages/bottle.py", line 2690, in wrapper
    return func(*a, **ka)
  File "/home/nikos/public_html/downloads.py", line 148, in file
    return static_file(filename, root='/static/files', download=True)
  File "/usr/lib/python3.6/site-packages/bottle.py", line 2471, in static_file
    if not os.path.exists(filename) or not os.path.isfile(filename):
  File "/usr/lib64/python3.6/genericpath.py", line 19, in exists
    os.stat(path)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 14-33: ordinal not in range(128)

Код, используемый для загрузки файла:

return static_file(filename, root='/static/files', download=True)

моя система настроена на utf-8

[root@superhost public_html]# echo $LANG
en_US.UTF-8

Возможно, что-то с Apache или это проблема с Python3?

1 Ответ

0 голосов
/ 25 сентября 2018

Нельзя использовать бутылку static_file() с именем файла Unicode и download=True.См. Принятый ответ для этого вопроса для двух альтернативных решений этого ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...