首页 > 数据库技术 > 详细

python2中在sqlite3中插入中文

时间:2019-02-23 11:17:01      阅读:159      评论:0      收藏:0      [点我收藏+]
 1 # -*- coding: utf-8 -*-
 2 import sqlite3
 3 
 4 conn = sqlite3.connect(SWC_Perf_Info.db)
 5 cur = conn.cursor()
 6 
 7 test_sql1 = "INSERT INTO test (name) VALUES (‘我爱中国‘)"    #gbk编码,存入数据库的时候显示的是乱码
 8 cur.execute(test_sql1)
 9 conn.commit()
技术分享图片
10 
11 cursor = cur.execute("SELECT name from test")
12 for row in cursor:
13     print(row[0])    #因为读取的是GBK编码内容,所以可以直接显示
14 
技术分享图片
15 
16 test_sql2 = "INSERT INTO test (name) VALUES (‘我爱中国‘)".decode(GBK)    #unicode编码
17 cur.execute(test_sql2)
18 conn.commit()
19 
技术分享图片
20 cursor = cur.execute("SELECT name from test")
21 for row in cursor:
22     print(row[0].decode(utf-8))    #即使用的是Unicode写入的数据库,内部还是使用的UTF-8编码存入,所以需要使用UTF-8解码
23     print(row[0].decode(utf-8).encode(GBK))    #输出的时候可以使用Unicode输出也可以使用本地的GBK输出
24 
技术分享图片
25 test_sql3 = test_sql2.encode(utf-8)    #utf-8编码
26 cur.execute(test_sql3)
27 conn.commit()
28 
技术分享图片
29 cursor = cur.execute("SELECT name from test")
30 for row in cursor:
31     print(row[0].decode(utf-8))
32     print(row[0].decode(utf-8).encode(GBK))
技术分享图片

 

总结下来写入的时候可以使用Unicode或者UTF-8编码的字符写入数据库

读取输出的时候使用UTF-8编码或者GBK编码的字符输出

 

UTF-8是可以支持直接的读取或者输出理想编码格式

python2中在sqlite3中插入中文

原文:https://www.cnblogs.com/hushaojun/p/10421992.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!