【发布时间】:2016-04-06 19:58:54
【问题描述】:
我在从 sqlite3 数据库中获取数据时遇到问题。我找不到表的名称及其编码。当我通过 sqlitebrowser 打开数据库时,名称只是不可读的字符。 与数据库的连接很好。
conn = sqlite3.connect('my.db')
conn_cursor = conn.cursor()
conn.text_factory = str
但是我怎样才能得到表的名称和它们的编码呢?
【问题讨论】:
-
The database's text encoding 以 4 字节 big-endian int 形式存储在 sqlite 数据库标头中的偏移量 56 处:
header = open('my.db').read(100); import struct; encoding_type = struct.unpack('>i', header[56:60])[0]。encoding_type等于 1、2 或 3,分别对应于 UTF-8、UTF-16LE 或 UTF-16BE。 -
手动打开 SQLite 数据库是获取损坏数据库的好方法。 Use the
encodingpragma instead.
标签: python python-2.7 sqlite