使用Python3和sqlite3与复杂的unicode字符串

时间:2012-09-09 20:52:09

标签: sqlite unicode python-3.x

我必须在数据库中存储复杂的unicode字符串,如“ʘ”(an IPA symbol)。这些字符串涉及特殊的字符,如k͡p和不寻常的变音符号。 我决定使用sqlite3并编写以下行来创建我的数据库:

import sqlite3
conn = sqlite3.connect('/tmp/example.db')
c = conn.cursor()
c.execute('create table mytable (mystring unicode)')
c.execute("insert into mytable values ('ʘ̃ʘ͡qʘ͡qʼ)")

然后我按照这些说明阅读'mytable':

c.execute('select * from mytable order by trans')
for row in c:
    print(c)

但是我只得到一个字符不正确的字符串,而字符串中最简单的字符仍然存在。相同的代码与通常的字符(如é,â,ö,......)完美配合。此代码来自the Python 3.2.3 documentation。 sqlite3无法存储任何unicode字符吗?

非常感谢任何帮助!

PS:我的文件使用utf-8编码:

# -*- coding: utf-8 -*-

1 个答案:

答案 0 :(得分:2)

很抱歉给您带来不便,但我的代码运作得非常好:这是我的终端显示有关sqlite返回的值的错误信息。