-1

假设我有一个 unicode 字符串u"Robinson Can\u00f3",我使用以下命令将字符串存储在 sqlite3 数据库中:

cursor.execute('create table tb (name text)')
cursor.execute('insert into tb values (?)', str')

但是,如果我想从数据库中查询 unicode 字符串 u"Robinson Can\u00f3",我什么也得不到。

cursor.execute("select * from tb where name = '%s'" % str)

但是如果我查询另一个不包含 unicode 的 unicode 字符串,例如 u"Kobe Byrant",我可以返回条目。

那么谁能告诉我如何使用 Python 处理带有 sqlite3 的 unicode?

非常感谢!

4

1 回答 1

3

执行 SQL 代码时不要使用字符串插值。请改用 SQL 参数:

cursor.execute("select * from tb where name = ?", (str,))

这适用于任何涉及参数的数据库交互,而不仅仅是 SQLLite。

于 2013-03-23T14:43:53.373 回答