导航:首页 > 编程语言 > sqlitepython27

sqlitepython27

发布时间:2025-09-29 03:18:42

1. python和SQLite问题,怎么解决

python编码如果把中文数据存储至sqlite数据库某一字段中,再通过查询语句取出并进行相关的字符串操作时,经常会出现错误提示,类似于UnicodeDecodeError,提示某一类型编码不能转换。

出现这个问题的原因是因为python默认使用unicode处理sqlite3的TEXT类型(varchar类型也是如此,因为在sqlite中varchar其实就是TEXT)。python把中文存入数据库时使用了类似于GBK这样的编码,取出时会尝试把TEXT类型数据转换成unicode,从而出现错误。
由此导致的另一个不容易发现的错误是存储在数据库中的中文进行了base64之类的编码,在python中取出时不会存在错误,但是再进行base64解码,并与sqlite3中取出的其它text字段进行字符串拼接等处理,就出现编码转换错误,很难发现问题原因,可以把其它text字段进行如'aaa'.encode('gbk')编码成GBK码解决,但不提倡这种方法,更好方法如下:
解决方法是python连接sqlite数据库后进行如下设置:
conn = sqlite3.connection(“……”)
conn.text_factory = str
另外为了python代码中硬编码的中文字符串不出现问题,除了在源码开始添加
# -*- coding:utf-8 -*-
还要设置python源码的编码为utf-8
import sys
reload(sys)
sys.setdefaultencode('utf8')

阅读全文

与sqlitepython27相关的资料

热点内容
框梁箍筋加密区长度在图集哪页 浏览:174
鹏程万里视频加密播放器的都是些什么人啊 浏览:350
把文件复制到同一文件夹中 浏览:218
阿里云代金券服务器 浏览:479
程序员与青蛙关系 浏览:843
什么是时间复杂度在算法里 浏览:605
华为手机上怎么添加照片文件夹 浏览:743
有excel为什么还要用python 浏览:394
程序员大叔卖3m 浏览:62
服务器频繁更新怎么办 浏览:562
sqlitepython27 浏览:906
jpg格式转pdf 浏览:710
java倒三角形 浏览:254
powerdesigner生成java 浏览:765
程序员面试搞那么多笔试题 浏览:537
一分钟了解什么是云服务器 浏览:432
福昕阅读器pdf转换成word 浏览:470
微信头像程序员搞笑 浏览:89
phpurl获取扩展名 浏览:161
螺杆压缩机轴封 浏览:110