假设我有一个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字符串,比如你的“Kobe Byrant”,我可以回来。
那么有人能告诉我如何使用Python来处理使用sqlite3的unicode吗?
非常感谢!
答案 0 :(得分:3)
执行SQL代码时不使用字符串插值。改为使用SQL参数:
cursor.execute("select * from tb where name = ?", (str,))
这适用于涉及参数的任何数据库交互,而不仅仅是SQLLite。