Кодировка отличается для метода, запущенного во Flask и напрямую - PullRequest
0 голосов
/ 11 октября 2019

Я написал простую программу обработки данных. Он получает данные из Google Sheets, оборачивает их в некоторый XML и отправляет их во внешний сервис. В данных есть несколько польских символов, таких как ł и ą. Все работает нормально, когда я запускаю его прямо так: python main.py

Работает локально также, когда я использую Flask только для запуска моего метода:

from flask import Flask, escape, request
import main

app = Flask(__name__)


@app.route("/runservice")
def run_service():
    main.main()


if __name__ == '__main__':
    app.run()

Однако, когда я его развертываю всервер и настройка passenger_wsgi.py (мой провайдер использует Phusion Passenger), он идет на юг.

Кодировка не работает, и кажется, что я ничего не могу с этим поделать из своего кода Python. Тот же код прекрасно работает, если я ssh на удаленный сервер, активирую virtualenv и запускаю упомянутый python main.py

Я попытался настроить кодировку в каждом отдельном файле Python (включая passenger_wsgi) на UTF-8, яустановили envvar LC_ALL в C.UTF-8, но, к сожалению, безрезультатно.

Токовый выход из Passenger / Flask выглядит следующим образом: Pawe³

При запуске любым другим способом это правильно:Павел

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

...