在Python中使用psycopg2连接到PostgreSQL时出现UnicodeDecodeError

问题描述 投票:0回答:1

我在尝试使用 Python 中的 psycopg2 库连接到 PostgreSQL 时遇到问题。我收到以下错误:

Traceback (most recent call last):
  File "c:\Users\ferre\Projects\PycharmProjects\Portal-de-Noticias\backend\user_registration\app.py", line 3, in <module>
    from noticias import noticias_bp
  File "c:\Users\ferre\Projects\PycharmProjects\Portal-de-Noticias\backend\user_registration\noticias.py", line 8, in <module>
    conn = psycopg2.connect(
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\ferre\Projects\PycharmProjects\Portal-de-Noticias\.venv\Lib\site-packages\psycopg2\__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 78: invalid continuation byte

这是我尝试建立连接的代码片段:

import psycopg2
from flask import Blueprint, jsonify, request

# Creating the Blueprint
noticias_bp = Blueprint('noticias', __name__)

# Database connection
conn = psycopg2.connect(
    dbname="portalDeNoticias",
    user="postgres",
    password="mk785",
    host="localhost",
    port='5432'
)
cur = conn.cursor()

此外,这里有一个在代码中其他地方使用的类似函数来连接数据库:

def connect_db():
    conn = psycopg2.connect(
        dbname="portalDeNoticias",
        user="postgres",
        password="mk785",
        host="localhost",
        port='5432'
    )
    return conn

该错误似乎与 UTF-8 解码问题有关,但我不确定到底是什么原因导致此错误或如何修复它。

有人可以帮助我了解可能出了什么问题以及如何解决此错误吗?

谢谢!

python postgresql flask utf-8 psycopg2
1个回答
0
投票

看起来 Postgres 对于密码允许的字符有一些限制。如果您使用 ODBC 连接字符串,则密码中不允许包含多个字符。

查看此 DBA Stack Exchange 帖子 - 链接

确保密码中没有任何这些字符或非 ASCII 字符。

© www.soinside.com 2019 - 2024. All rights reserved.