Кодировка данных в веб-приложении

Создаю api на Python с FastAPI, использую SQLAlchemy и база данных sqlite. При выборке и отдаче данных на роут - данные на русском языке отображаются с неверной кодировкой. при этом в выводе в консоль самих переменных (clubs_by_city), которые содержат данные - все выводится в нормальной кодировке.

@router.get("/city/{city_id}", response_model=typing.List[shemas.ClubsByCity])
def get_clubs_by_cities(city_id: int):
    """Получить все кружки, которые существуют в определенном городе"""
    with session.Session() as my_session:
        is_city = my_session.query(session.Cities).filter_by(id=city_id).first()
        if not is_city:
            raise fastapi.HTTPException(
                status_code=fastapi.status.HTTP_404_NOT_FOUND,
                detail=f"city with id: {city_id} was not found",
            )
        clubs_by_city = (
            my_session.query(session.Clubs)
            .filter_by(city_id=city_id).all()
        )
        if not clubs_by_city:
            raise fastapi.HTTPException(
                status_code=fastapi.status.HTTP_404_NOT_FOUND,
                detail=f"no clubs in city with id: {city_id}",
            )
        return clubs_by_city

Предполагаю, что это связано именно с FastAPI, а не с базой данных Вот так выглядят данные на роуте: [{"id":1,"name":"ООО «Федотова-ÐниÑимов»"}]


Ответы (1 шт):

Автор решения: pumpkinlol

Добавила middleware, который добавляет заголовок в хедер с нужной кодировкой, все начало отображаться верно. выглядит примерно так, если вдруг кому-то понадобится:

@app.middleware("http")
async def add_encoding_header(request: fastapi.Request, call_next):
    response = await call_next(request)
    response.headers["Content-Type"] = "text/html; charset=utf-8"
    return response
→ Ссылка