python从sqllite中取中文乱码有关问题
python从sqllite中取中文乱码问题
我在这个库中加入中文可以正常查询输出中文,但是我换了一个数据库,数据类型都没有变。代码只是改动了数据库连接和查询语句。但是确出现乱码。
C:\Python26>python sql.txt
中国
中国
美国
飞机
这个是这个库里面正常的输出
改动了以后就输出
C:\Python26>python sql1.txt
鑹
数据内容有些变化,但是都是汉字。
求解决
------解决方案--------------------
估计是两个数据库中指定的编码不一样. 可以用"pragma encoding"查看数据库的编码,象这样:
~/shizi/ sqlite3 shizi.db
sqlite> pragma encoding;
UTF-8
sqlite>
- Python code
#!python # encoding: gbk import sqlite3 as sqlite conn = sqlite.connect('test.db') conn.text_factory = str c = 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>