среда, 28 августа 2019 г.

Ошибка в Python-скрипте UnicodeEncodeError

  Есть Apache на линуксе. В этом апаче работает Python3 скрипт.
   Проблемный фрагмент кода:
msg = "Какой-то текст по русски"
print(msg)
  При открытии страницы с этим скриптом в логах апача появляется ошибка
........ [cgi:error] [pid 26812] [client xx.xx.xx.xx:51638] AH01215: UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-3: ordinal not in range(128): /usr/lib/cgi-bin/
  WWW-страница отображается пустая.

  Решение проблемы нашлось в обсуждении Вывод UTF-8 CGI-скриптом на Python 3.
  В начале скрипта добавил строку
# -*- coding: utf-8 -*-
  В настройках апача проконтролируйте наличие следующих строк:
AddDefaultCharset UTF-8
SetEnv PYTHONIOENCODING utf8
  В найденных статьях говорится о внесении этих двух строк в файл /etc/apache2/apache2.conf В моем апаче я вносил измнения в /etc/apache2/conf-enabled/charset.conf
  Конечно рестарт апача"systemctl restart apache2"

Комментариев нет:

Отправить комментарий