我希望通过Python驱动程序创建一个SQLite数据库。由于应用程序将在不同的操作系统上运行,因此我希望明确指定SQLite数据库中文本的编码(默认情况下)。显然,我只能使用此命令在创建数据库之前执行此操作(请参见SQLite文档):
我的问题是,Python创建/连接数据库的方式没有明确指定(至少在我理解的范围内)在创建数据库之前设置PRAGMA(如编码)的方法(Python docs)。
因此,在创建数据库之前/期间,是否有任何通过Python SQlite驱动程序指定编码的方法?
我目前唯一看到的解决方法似乎有点hacky,就是通过Python运行Shell命令,但由于SQLite CLI未安装在计算机上,这不是一个选项。
PRAGMA encoding = "UTF-8";
我的问题是,Python创建/连接数据库的方式没有明确指定(至少在我理解的范围内)在创建数据库之前设置PRAGMA(如编码)的方法(Python docs)。
因此,在创建数据库之前/期间,是否有任何通过Python SQlite驱动程序指定编码的方法?
我目前唯一看到的解决方法似乎有点hacky,就是通过Python运行Shell命令,但由于SQLite CLI未安装在计算机上,这不是一个选项。
text_factory
,但你已经在实例化连接时创建了数据库。事实上,我的建议可能不太适合你正在尝试做的事情,但这是值得一看的东西。 - roganjoshPRAGMA encoding
是对整个数据库进行一次性永久更改。连接到数据库并执行 PRAGMA 应该可以为所有后续表完成您要查找的操作。既然如此,看起来 API 没有任何其他规定。 - roganjosh