Форум сайта python.su
0
Стандартная тестовая программа для Python 2.7.11 в ОС Linux:
#!/usr/bin/env python # -*- coding: utf-8 -*- # vim:fileencoding=utf-8 import cgitb cgitb.enable() print "Content-type: text/html;charset=utf-8\n\n" print "<html><head><title>Python test</title></head><body>" try: print "<h1>Прощай, Мир!</h1>" except: print "<h1>No - Goodbye, World!</h1>" print "</body></html>"
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # vim:fileencoding=utf-8 import cgitb cgitb.enable() print("Content-type: text/html;charset=utf-8\n\n") print("<html><head><title>Python test</title></head><body>") try: print("<h1>Прощай, Мир!</h1>") except: print("<h1>No - Goodbye, World!</h1>") print("</body></html>")
Отредактировано vadval15 (Июль 15, 2020 13:59:38)
Офлайн
568
Ну то есть вы перехватили исключение, а теперь у вас вопрос, а что же там было в исключении.
Не перехватывайте, интерпретатор расскажет в чем ошибка
Офлайн
0
Спасибо за ответ. Действительно, без перехватывания исключения интерпретатор в журнале сервера рассказал, в чём ошибка:
[Wed Jul 15 16:11:57.985452 2020] [cgi:error] [pid 1217:tid 3053452096] [client 93.75.67.126:53312] AH01215: : /var/www/apache2/cgi-bin/hello1r.py [Wed Jul 15 16:11:57.985533 2020] [cgi:error] [pid 1217:tid 3053452096] [client 93.75.67.126:53312] AH01215: Original exception was:: /var/www/apache2/cgi-bin/hello1r.py [Wed Jul 15 16:11:57.985589 2020] [cgi:error] [pid 1217:tid 3053452096] [client 93.75.67.126:53312] AH01215: Traceback (most recent call last):: /var/www/apache2/cgi-bin/hello1r.py [Wed Jul 15 16:11:57.985685 2020] [cgi:error] [pid 1217:tid 3053452096] [client 93.75.67.126:53312] AH01215: File "/var/www/apache2/cgi-bin/hello1r.py", line 10, in <module>: /var/www/apache2/cgi-bin/hello1r.py [Wed Jul 15 16:11:57.985797 2020] [cgi:error] [pid 1217:tid 3053452096] [client 93.75.67.126:53312] AH01215: print("<h1>\\u041f\\u0440\\u043e\\u0449\\u0430\\u0439, \\u041c\\u0438\\u0440!</h1>"): /var/www/apache2/cgi-bin/hello1r.py [Wed Jul 15 16:11:57.985937 2020] [cgi:error] [pid 1217:tid 3053452096] [client 93.75.67.126:53312] AH01215: UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-9: ordinal not in range(128): /var/www/apache2/cgi-bin/hello1r.py
Офлайн
568
import cgitb import sys cgitb.enable() print("Content-type: text/html;charset=utf-8\n\n") print("<html><head><title>Python test</title></head><body>") print("<h1>{}</h1>".format(sys.stdout.encoding)) print("</body></html>")
Офлайн
0
Спасибо за ответ. Данная программа выводит в браузере следующее:
ANSI_X3.4-1968
Офлайн
568
vadval15
Попробуйте установить системную локаль в
LANG=en_US.UTF-8
Офлайн
0
Спасибо за ответ. К сожалению, после смены системной локали (ru_RU.UTF-8 на en_US.UTF-8) всё осталось по-прежнему.
Офлайн
568
vadval15
ru_RU.UTF-8 на en_US.UTF-8
vadval15Что-то тут не так
ANSI_X3.4-1968
Офлайн
0
Спасибо за ответ. По-моему, тут всё не так, а почему - непонятно.
Офлайн
124
vadval15
print(“<h1>\\u041f\\u0440\\u043e\\u0449\\u0430\\u0439, \\u041c\\u0438\\u0440!</h1>”)
print("\u041f\u0440\u043e\u0449\u0430\u0439, \u041c\u0438\u0440!")
D:\programming\untitled2\venv\Scripts\python.exe D:/programming/untitled2/test.py Прощай, Мир! Process finished with exit code 0
# -*- coding: utf-8 -*- # vim:fileencoding=utf-8
Отредактировано xam1816 (Июль 17, 2020 18:15:31)
Офлайн