Проблема с кодировкой при подключении Django к Postgresql

Я не могу подключить Django к базе данных PostgreSQL. Он показывает мне проблему с кодировкой:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 86: invalid start byte

Проблема заключается в этой строке:

  File "C:\Users\Robo\Desktop\Stock\venv\Lib\site-packages\psycopg2\__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

Я пытался изменить кодировку в опции Settings, но безрезультатно.

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "Stocks",
        "USER": "postgres",
        "PASSWORD": "password",
        "HOST": "127.0.0.1",
        "PORT": "5432",
        "encoding": "utf-8",

    }
}

У меня сильное ощущение, что ваш пакет psycopg2 слишком старый. Возможно, какая-то старая версия была установлена как зависимость для другого пакета. Обновите его с помощью: pip install --upgrade psycopg2.

Словарь не работает с ключевым словом "encoding". Если вы хотите указать кодировку, сделайте это следующим образом:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "Stocks",
        "USER": "postgres",
        "PASSWORD": "password",
        "HOST": "127.0.0.1",
        "PORT": "5432",
        "OPTIONS": {
            "options": "-c client_encoding=utf8"
        }
    }
}

Скорее всего, это проблема с Psycopg; он вызывает много проблем, особенно в некоторых релизах 2.x. Попробуйте откатиться на 2.9.9, если у вас есть файл requirements.txt, вы можете найти пакет в нем и изменить версию или, как предложил @Tarquinius, установить его через терминал.

Вернуться на верх