Я создал и заполнил греческие имена в наборе(), и затем передаю этот набор значений функции просмотра.
Когда я пытаюсь напечатать этот набор, греческие имена отображаются как смешные. Я считаю, что это имеет некоторое значение, чтобы сделать это Apache mod_wsgi или Bottle doens't начать с поддержки utf-8.
Как я могу сказать Apache/Bottle, чтобы использовать LANG = el_GR.utf-8, чтобы я мог правильно отображать Юникод, потому что считаю, что здесь дело?
Я искал AdddefaultCharset utf-8 в httpd.conf, но он уже включен, поэтому я должен спросить, почему греческие символы появляются как смешные?
Это когда я пытаюсь загрузить файл с греческим именем файла.
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?
Вы не можете использовать Bottle static_file()
с unicode filename и download=True
. См. Принятый ответ на этот вопрос для двух альтернативных решений этого ограничения.