读书人

python从sqllite中取中文乱码有关问题

发布时间: 2012-03-02 14:40:29 作者: rapoo

python从sqllite中取中文乱码问题

Python code
#!python# encoding: gbkimport sqlite3 as sqliteconn = sqlite.connect('test.db')conn.text_factory = strc = conn.cursor()c.execute("select * from tb")all = c.fetchall()for data in all:    print data[0]

我在这个库中加入中文可以正常查询输出中文,但是我换了一个数据库,数据类型都没有变。代码只是改动了数据库连接和查询语句。但是确出现乱码。
C:\Python26>python sql.txt
中国
中国
美国
飞机
这个是这个库里面正常的输出

改动了以后就输出

C:\Python26>python sql1.txt

数据内容有些变化,但是都是汉字。
求解决


[解决办法]
估计是两个数据库中指定的编码不一样. 可以用"pragma encoding"查看数据库的编码,象这样:

~/shizi/ sqlite3 shizi.db
sqlite> pragma encoding;
UTF-8
sqlite>

读书人网 >perl python

热点推荐