Python - SQLite 数据库文件以错误的编码“UTF-8”加载

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

我编写了一个查询来创建 SQLite 数据库,该查询完全正确。数据库文件是在我的项目文件中创建的,但是当我尝试打开它(在 pycharm 中)时,会显示此消息:

文件以错误的编码“UTF-8”加载

这是导致此问题的代码:

import sqlite3
connection = sqlite3.connect("./one_database.db")
cursor = connection.cursor()
sql = """
CREATE TABLE IF NOT EXISTS User (
    user_NAME VARCHAR (60),
    user_CHATID FLOAT (20),
    user_PHONENUMBER VARCHAR )
"""
cursor.execute(sql)
connection.commit()
connection.close()

到目前为止,我尝试下载并更新 SQLite3 的所有驱动程序和需求,一切都是最新的。我已经尝试了在 Google 上找到的所有解决方案(包括 JetBrains 官方文档、Stack Overflow 等),但以上都不起作用,结果是一样的!

我正在使用:Python 3.8 | PyCharm 2021.1

python sqlite encoding utf-8 pycharm
2个回答
0
投票

顺便说一句,我使用“db.browser”解决了我的问题! 这用于处理 sqlite 数据库。


0
投票

为了在 Python 中有效处理 SQLite 路径编码问题,了解文件路径的性质和 SQLite 使用的编码至关重要。以下是解决此类问题的一些步骤:

  1. 确保文件路径采用 UTF-8 编码:Python 的 SQLite 模块期望文件路径采用 UTF-8 编码。确保您的路径字符串在传递给 SQLite 之前已正确编码。

  2. 对 Windows 路径使用原始字符串:在 Windows 上,文件路径通常包含反斜杠 (

    \
    ),可以将其解释为转义字符。使用原始字符串文字(例如,
    r"C:\path\to\database.db"
    )可以避免此问题。

  3. 检查路径长度:SQLite 对文件路径的长度有限制。确保用于 SQLite 数据库的路径不超过这些限制。超过指定长度的路径可能会导致编码问题或错误。

  4. 跨平台注意事项:如果您的代码将在不同操作系统(Windows、Linux、macOS)上运行,请始终验证用于路径的编码在跨平台上是否一致。例如,与 Linux 和 macOS 相比,Windows 使用不同的文件路径约定。

  5. 处理非 ASCII 字符:如果您的 SQLite 路径包含非 ASCII 字符,您可能会遇到编码问题。在这种情况下,请考虑使用 Python 的

    unicodedata
    模块规范化路径,以正确处理特殊字符。

有关更详细的讨论和故障排除提示,您可以查看此社区线程,我们在其中更深入地探讨在 Python 中处理 SQLite 路径编码问题,并分享针对不同环境量身定制的解决方案。

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